构造函数:
1.专门用于对象初始化的函数
2.构造函数是与类名相同,在建立对象时被系统自动调用的函数,如果在定义类时,没有为类定义构造函数,编译系统就生成一个默认形式的隐含的构造函数,这个构造函数的函数体是空的,因此默认构造函数不具备任何功能。
3.没有返回值
4.拷贝构造函数是特殊的构造函数,格式为
类名(类名 & 对象名)
{
……
}
5.被声明定义为公有函数
6.对派生类的构造函数定义之前要对基础类(的构造函数)初始化
基础类: Array(unsigned int s)
初始化: SortedArray(unsigned int s):Array(s){}
7.构造函数中的参数要给私有成员赋值
8.构造函数的参数定义时要注意在赋值语句中使用的参数,考察构造函数一般都会考察到形参,应注意联系上下文,
9.类的成员函数在类外定义时要在前面加上返回值类型,即:
返回值类型+类名+作用域(::)
10.私有成员在主函数main中不能直接调用,只能被类的成员函数调用
11.构造函数也要使用作用域符号'::'
12.构造函数的成员列表初始化格式为
:私有成员(参数),…,…{},不能用赋值语句
13.在构造函数中this指针指向的是当前类,因此当参数名和要赋值的成员名称一样时,使用this指针来区别,即当类的私有成员和形参名字相同时,为了区别类的成员要调用this指针来区分
14.构造函数的成员初始列表要把形参放在括号内
15.调用类的成员函数使用标识符'.',而不是作用域符'::'
析构函数:
1.构造对象时,通过构造函数动态申请了一些内存单元,在对象消失之前就要释放这些内存单元,C++用析构函数来保证这些善后工作的执行,它是在对象消失之前的瞬间自动调用的函数
2.析构函数没有任何参数,不能被重载,但可以是虚函数,一个类只能有一个析构函数
3.同构造函数一样,没有返回值
4.析构函数名在类名前加上一个逻辑非运算符“~”,以示与构造函数对比区别
5.析构函数一般由用户自己定义,在对象消失时由系统自动调用,如果用户没有定义析构函数,系统将自动生成一个不做任何事儿的默认析构函数。在对象消失时的清理工作并不是析构函数完成的,而是靠用户在析构函数里添加的处理语句完成
6.delete [] 要释放的指针;//释放指针变量
7. virtual ~Array() { delete[]
a;}
意思是它为虚函数,同时释放指针a
8.在使用virtual之前,C++对成员函数使用静态联编,而使用virtual,并且在调用函数时是通过指针或引用调用,C++则对成员函数进行动态编联。
评论