- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C知识点总结剖析
第二章 *为选读
数据成员--不能初始化
成员函数--可以使用类中的所有成员(变量和函数)
1声明与实现都定义在类内部
2声明在类内部,实现在类外部
private--1类内可以被访问
2类外不能被直接访问,通过公有成员函数访问
3默认类型(数据成员常用)
4继承关系中,子类不可以访问父类的private成员
protected--1类内可以被访问
2类外不能被直接访问,通过公有成员函数访问
3继承关系中,子类可以访问父类的protected成员
public--1类内和类外都可以被访问
2成员函数常用
构造函数--1特殊的类成员函数为新对象分配内存空间
2功能:为新对象分配内存空间;初始化数据成员
3写法:a.构造函数名与类名相同
b.没有返回时值类型
c.可以重载
d.一般为public(例如:在成员函数里生成对象,可以为私有)
4使用:声明对象(或需要构造新对象)时系统自动调用
5默认构造函数
(只有一个,无参数/每个参数都有默认值,无函数体)
析构函数--1特殊的类成员函数,回收内存空间
2功能:撤销类的对象
3写法:a.析构函数名与类名相同,前面冠以~
b.没有参数,返回时值类型
c.不可以重载,只有一个
d.公有
4使用:撤销对象时系统自动调用
5默认析构函数
(只有一个,无参数/每个参数都有默认值,无函数体)
构造函数与析构函数调用顺序:先构造后析构,后构造先析构
引用--1已经定义的变量的别名,不为其分配内存空间
2是引用类型说明符
3声明引用时,必须同时对其进行初始,且不能再把该引用名作为其他变量名的别别名
4不能建立数组的引用,只能建立数组元素的引用。
5使用:a.引用作为函数参数 --类似于地址传值
* b.引用作为函数返回值--一般函数返回值时,要生成一个临时变量作为返回值的副本,而用引用作为返回值时,不生成值的副本。
※注意:引用作为函数的返回值的情况:
I.全局变量 II.引用参数传递过来的变量
##不能是函数中的局部变量,这时返回的局部变量地址已经失效。
9.复制构造函数:特殊的构造函数
1功能:用一个已经存在的对象去初始化一个新的同类对象
2写法:a.函数名与类名相同
b.形参是本类对象的引用,无返回值类型
c.默认拷贝构造函数/自定义拷贝构造函数
3以下情况时,系统自动调用复制构造函数
a.用一个对象初始化另一个对象
* b.函数形参是类的对象,函数形参和实参结合时
* c.函数返回值是类的对象,当函数返回时
10.成员对象与构造函数
1定义:类中的成员,除了成员数据和成员函数外,还有成员对象,即用
其他类的对象作为类的成员,也称为对象成员,使用成员对象的技术称为聚合。成员对象是实体,系统不仅为它分配内存,而且要进行初始化。
2构造函数写法:
a. 类名::构造函数名(参数总表):对象成员1(参数名表1),对象成员2(参数名表2),……对象成员n(参数名表n){……}
//参数总表:含数据类型;参数名表:不含数据类型
b. 构造函数可以采用多种方法对数据成员初始化:
在构造函数体中初始化
在构造函数头部初始化
混合初始化
3构造函数调用顺序:
含对象成员的类对象的初始化时,首先依次自动调用各成员对象的构造函数,再执行该类对象自己的构造函数的函数体部分。各成员对象的构造函数调用的次序与类定义中说明的顺序一致,而与它们在构造函数成员初始化列表中的顺序无关。
4析构函数调用顺序:
因为析构函数没有参数,所以包含成员对象的类的析构函数形式上并无特殊之处。但是撤销该类对象时,会首先调用自己的析构函数,再调用成员对象的析构函数,调用次序与初始化时的次序相反。
11. 运算符重载
1定义:运算符的重载是特殊的函数重载,必须定义一个函数,并通知C++编译器,当遇到该重载的运算符时调用此函数。对运算符进行定义叫做运算符重载函数,通常为类的成员函数。
2写法:
a. 返回值类型 operator重载的运算符(参数表)
文档评论(0)