派生类的析构函数[1]
- 析构函数不被继承,派生类如果需要,要自行声明析构函数。
- 声明方法与无继承关系时类的析构函数相同。
- 不需要显式地调用基类的析构函数,系统会自动隐式调用。
- 先执行派生类析构函数的函数体,再调用基类的析构函数。
例7-5 派生类对象析构举例
#include
![905addc152911cd7194d42f75e205f92.png](https://i-blog.csdnimg.cn/blog_migrate/d3871f1b0f307f3909d6d87394c252b8.jpeg)
对程序的说明:
构造函数的执行顺序
按照继承顺序执行基类的构造函数,然后按定义顺序执行对象成员的构造函数。
1、调用基类构造函数。
顺序按照它们被继承时声明的顺序(从左向右):Base2, Base1, Base3。
2、对初始化列表中的成员进行初始化。
顺序按照它们在类中定义的顺序:Base1 member1; Base2 member2; Base3 member3;。
对象成员初始化时自动调用其所属类的构造函数。由初始化列表提供参数。
3、执行派生类的构造函数体中的内容。
析构函数的执行顺序与构造函数相反
先对本类成员析构,然后调用基类的析构函数,析构从基类继承的成员(依照继承顺序从右向左)。
参考
- ^http://www.xuetangx.com/courses/course-v1:TsinghuaX+00740043_2x_2015_T2+sp/courseware/8d1fd477f469492ba2c1297e6ace6f5d/263289c1d1bf4addb62ad80fae305676/