C++构造函数析构函数的执行过程

在创建派生类对象时:基类的构造函数→派生类的构造函数;

1、如果在派生类的构造函数中显式调用父类构造函数,则必须写到初始化参数表里。

2、如果在派生类的构造函数中未显式调用父类构造函数,则默认调用父类无函数的构造函数。

3、如果在派生类的构造函数中未显式调用父类构造函数,而父类中未定义任何构造函数或必须有一个构造函数无任何参数。

在析构派生类对象明:派生类的析构函数→基类的析构函数。 

1.如果用父类指针指向的派生类对象,则父类的析构函数必须声明为virtual,否则无法调用派生类的析构函数。

2.要用正确的参数调用直接基类的构造函数,以作为每个派生类构造函数的一部分(讨论)
3.普通成员函数不能用这种语法调用基类方法
4.类只负责其直接基类的构造。但存在虚基类时有所不同
5.派生类构造函数的参数要包括自己使用的和基类需要使用的所用参数
6.派生类继承基类的行为和结构,但不继承构造函数和析构函数
7.要在派生类拷贝构造函数中调用基类的拷贝构造函数
8.要在派生类赋值运算符中调用基类的赋值运算符
9. 派生类析构函数并不明确调用基类的析构函数
10. 所用虚基类都由最后的派生类的构造函数所初始化。当创建对象时,将忽略子对象构造函数内部对虚基类构造函数的调用。
11.公有继承是继承的主要模式,私有继承只在特殊情况下用(如实现堆栈类可从列表类中继承,但它不是某种列表,重新导出私有基类的成员。)私有继承没有多态性。
12.在单一继承能实现目的时,不要用多重继承
13.继承的优点:代码重用,在正在运行的程序中加入新类和新功能(如卫星、病人监护),动态联编,多态性。

原文地址:https://www.cnblogs.com/cplusplus/p/2456929.html