ImageVerifierCode 换一换
格式:DOCX , 页数:99 ,大小:129.63KB ,
资源ID:15056037      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/15056037.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(复习资料 c++ 面向对象程序设计Word格式文档下载.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

复习资料 c++ 面向对象程序设计Word格式文档下载.docx

1、 P= new types; Delete p;多维数组(二维数组): 必须指出所有维的长度指针变量 = new 类型名下标表达式 下标表达式; Delete 变量名定义一个34的数组 Int (*p)4; p是个指针,它指向一个n维数组(4定义的时候必须已知,即后几维必须已知) p=new int34;/ 第一维可以是常量或表达式,其他维必须全部为常量对象:可以在创建对象的时候同时进行初始化 类名 *指针变量 = new 类名(实参表);对象数组: 语法:类名 数组名元素个数; 或: 类名* 指针名;指针名=new 类名数组长度;Point A2; Point* p; *p=new Poin

2、t5; delete p; 初始化:每个对象都要调用一次构造函数和一次析构函数。 1)对象数组确定且长度有限:可以使用参数列表初始化 Point A2=Point(1,2),Point(3,4); 2)对象数组长度比较大或不确定:只能调用无参或者使用缺省参数的函数 Point A2; 原因:在建立对象数组的时候,C+不允许整体对对象进行初始化(即 和( )不能一起使用),这时不能给对象 使用有参数的构造函数 所以:若创建一个类的对象数组,就对给类的构造函数有要求:对象数组只能调用一个不需要参数的构造函数常见问题:1):有了malloc/free 为什么还要new/delete? malloc/

3、free 只能满足内部数据类型的变量,它们只需要申请空间,无法对空间进行操作 而对于非内部数据类型的对象来说,对象在创建的同时要自动执行构造函数,在消亡之前要自动执行析构函数。 由于malloc/free 是库函数而不是运算符,不在编译器控制权限之内,不能够自动地调用构造函数和析构函数。即用无法满足动态对象的要求。 因此 C+语言需要一个能完成动态内存分配和初始化工作的运算符new,以及一个能完成清理与释放内存工作的运算符delete。 注意new/delete 不是库函数,而是运算符。malloc/free 是标准库函数。2):malloc/free 和 new/delete 的相同点和不同

4、点 相同点:它们都可以申请和释放空间。 不同点: 一、new :分配内存 + 调用类的构造函数 + 初始化 delete:释放内存 + 调用类的析构函数 malloc:只分配内存,不会进行初始化类成员的工作 free只释放内存,不会调用析构函数二、new delete 是运算符,可以进行重载 malloc,free是函数,不可以进行重载三、new delete 更加安全,简单:不用计算类型大小:自动计算要分配存储区的字节数不用强制类型转换:自动返回正确的指针类型四、new可以分配一个对象或对象数组的存储空间,malloc不可以五、可以超载与类相关的new和delete六、malloc/free

5、 是标准库函数,new/delete是C+运算符new和delete搭配使用,malloc和free搭配使用:混搭可能出现不可预料的错误3):new后执行的三个操作:(某面试题目) 1、new的类分配内存空间。 2、 调用类的构造方法。 3 、返回该实例(对象)的内存地址友元函数1、为什么要引入友元函数:在实现类之间数据共享时,减少系统开销,提高效率 具体来说:为了使其他类的成员函数直接访问该类的私有变量 即:允许外面的类或函数去访问类的私有变量和保护变量,从而使两个类共享同一函数 优点:能够提高效率,表达简单、清晰 缺点:友元函数破环了封装机制,尽量不使用成员函数,除非不得已的情况下才使用友

6、元函数。2、什么时候使用友元函数: 1)运算符重载的某些场合需要使用友元。 2)两个类要共享数据的时候3、怎么使用友元函数:友元函数的参数: 因为友元函数没有this指针,则参数要有三种情况: 1、 要访问非static成员时,需要对象做参数;-常用(友元函数常含有参数) 2、 要访问static成员或全局变量时,则不需要对象做参数 3、 如果做参数的对象是全局对象,则不需要对象做参数友元函数的位置: 因为友元函数是类外的函数,所以它的声明可以放在类的私有段或公有段且没有区别。友元函数的调用: 可以直接调用友元函数,不需要通过对象或指针友元函数的分类:根据这个函数的来源不同,可以分为三种方法:

7、1、普通函数友元函数: a) 目的:使普通函数能够访问类的友元 b) 语法:声明位置:公有私有均可,常写为公有 声明: friend + 普通函数声明 实现位置:可以在类外或类中 实现代码:与普通函数相同(不加不用friend和类:) 调用:类似普通函数,直接调用 c) 代码:cpp view plaincopyprint?class INTEGER private: int num;public: friend void Print(const INTEGER& obj);/声明友元函数 ;void Print(const INTEGER& obj)/不使用friend和类: /函数体 vo

8、id main() INTEGER obj; Print(obj);/直接调用 2、类Y的所有成员函数都为类X友元函数友元类 a)目的:使用单个声明使Y类的所有函数成为类X的友元 它提供一种类之间合作的一种方式,使类Y的对象可以具有类X和类Y的功能 具体来说: 前提:A是B的友元(=A中成员函数可以访问B中有所有成员,包括私有成员和公有成员-老忘) 则:在A中,借助类B,可以直接使用B . 私有变量的形式访问私有变量 b)语法:公有私有均可,常写为私有(把类看成一个变量) friend + 类名-不是对象啊 c)代码:class girl;class boy char *name; int a

9、ge; boy(); void disp(girl &);void boy:disp(girl &x) /函数disp()为类boy的成员函数,也是类girl的友元函数 coutboys name is:name,age:ageendl;/正常情况,boy的成员函数disp中直接访问boy的私有变量 girlx.namex.age /借助友元,在boy的成员函数disp中,借助girl的对象,直接访问girl的私有变量 /正常情况下,只允许在girl的成员函数中访问girl的私有变量 class girl private: friend boy; /声明类boy是类girl的友元 girl()

10、; boy b; girl g; b.disp(g); /b调用自己的成员函数,但是以g为参数,友元机制体现在函数disp中 3、类Y的一个成员函数为类X的友元函数使类Y的一个成员函数成为类X的友元 具体而言:而在类Y的这个成员函数中,借助参数X,可以直接以X。私有变量的形式访问私有变量声明在公有中 (本身为函数)friend + 成员函数的声明先定义Y的对象y-使用y调用自己的成员函数-自己的成员函数中使用了友元机制 girl(char *N,int A); friend void boy: /声明类boy的成员函数disp()为类girl的友元函数 x) /访问自己(boy)的对象成员,直接访问自己的私有变量 boy b(); girl g(); 4、在模板类中使用友元operator(对运算符的重载) a)使用方法:在模板类中声明:friend ostream& operator (ostream& cout,const MGraph& G);在模板类中定义:templateostream& G) /函数定义 b)注意:把函数声明非模板函数: (ostream& cout,const MGraph&把函数声明为模板函数:(ostre

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1