1.类的构造函数和析构函数
类的构造函数:函数名与类名相同,没有返回值的函数;一个类实例化为一个对象时自动调用;构造函数可以重载
析构函数:与构造函数类似,只是在函数名钱多一个 ~ ,一个类只有一个析构函数,不能出现重载,在对象销毁时自动调用
注意:由于在构造函数中会初始化一些类的成员指针,在析构函数中删除,因此在不同的构造函数中给类的成员指针分配内存时,一定要统一用new或new[]
2.构造函数的初始化赋值
a.在构造函数的函数体中给类的成员赋值
b.在构造函数的初始化成员列表中进行初始动作
c.const成员变量必须在初始化成员列表中进行初始化(不进行初始化时会报错)
d.引用数据类型必须在初始化成员列表中赋值
3.构造函数的重载(同名不同参)
注意点:
缺省值:可在.h文件的构造函数中,直接对成员变量进行初始化
当使用缺省值时,可能出现有多个构造函数的实例与参数列表匹配,由于缺省值的存在,导致类在初始化时,不知道选用那个构造函数来进行初始化
缺省值的使用,使得参数列表不同的两个构造函数,可能出现程序不识别的情况
当缺省值遇上构造函数的初始化时,初始化具有较高优先级
4.函数成员变量的释放
函数中没有使用指针的成员变量在函数结束时,成员变量会自动释放,并调用类成员变量的析构函数
函数中使用指针的成员变量在函数结束时,成员变量不会自动释放,必须使用delete函数进行手动释放,否则不会调用析构函数
注意:在声明成员变量时,通常使用指针进行声明,在对应的.cpp文件初始化内存--在初始化内存时,要统一使用new 或new[]。然后在析构函数中使用delete []成员名或delete 成员名
不能再对应的.cpp文件中对指针进行赋值,会报错--显示;对基础类型的百年来那个赋值时,不会出现类似问题