单选题
👁️ 浏览量:

试题题干

已知基类是封闭类,在具有继承关系的类层次体系中,析构函数执行的顺序是(    )

A

对象成员析构函数——基类析构函数——派生类本身的析构函数

B

派生类本身的析构函数——对象成员析构函数——基类析构函数

C

派生类本身的析构函数——基类析构函数——对象成员析构函数

D

基类析构函数——对象成员析构函数——派生类本身的析构函数

参考答案

正确答案:

试题解析

生成派生类对象时,会引发一系列构造函数的调用,顺序是:
先根据派生层次从上至下依次执行所有基类的构造函数,最后执行自身的构造函数。即基类构造函数——派生类本身的构造函数。

如果某个类是封闭类,则在执行本类构造函数之前,先按照成员对象的定义顺序执行各个成员对象所属类的构造函数。即对象成员构造函数——基类构造函数。

故构造函数的执行顺序:对象成员构造函数——基类构造函数——派生类本身的构造函数。

而当派生类对象消亡时,执行析构函数的次序执行构造函数的次序相反,即派生类——基类——对象成员,故本题选C。