当一个对象被定义时,系统会自动调用构造函数为该对象分配相应的资源;当对象使用完毕后,系统自动调用类的析构函数来释放这些系统资源.
1. 构造函数特点: 与类同名,无返回值,可以重载
2. 析构函数特点: 定义写为~类名(),无参数无返回值且不可重载
3. 对象被析构的顺序与其创建的顺序正好相反.
4. 默认构造函数.若类定义中没有显示的定义构造函数,编译系统会提供一个默认的构造函数.该构造函数是一个无参函数,函数体为空,负责创建对象,而不做任何初始化工作,但只要定义了构造函数,编译系统就不再提供默认的构造函数.
5. 拷贝构造函数.完成创建一个对象的同时,用一个已有的同类的对象去初始化该对象,即用一个对象去构造另外一个对象.定义格式为:类名(const 类名 &行参).它只有一个参数且是对该类对象的引用.若没有定义拷贝构造函数,编译系统会自动生成一个默认的拷贝构造函数..
6. 一个类的对象作为另一个类的数据成员.则新类的构造函数定义格式为:
新类名(参数表0):成员1(参数表1),成员2(参数表2),成员3(参数表3)...
其中,成员1,2,3...是新类中的对象成员,参数表1,2,3分别是初始化成员1,2,3所需的参数且都来自于参数表0.初始化新类的非对象成员页是来自于参数表0.