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

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


A、

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


B、

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


C、

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


D、

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


【正确答案】:C
【题目解析】:

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

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

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

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


Top