已知基类是封闭类,在具有继承关系的类层次体系中,析构函数执行的顺序是( )
A、
对象成员析构函数——基类析构函数——派生类本身的析构函数
B、
派生类本身的析构函数——对象成员析构函数——基类析构函数
C、
派生类本身的析构函数——基类析构函数——对象成员析构函数
D、
基类析构函数——对象成员析构函数——派生类本身的析构函数
【正确答案】:C
【题目解析】:
生成派生类对象时,会引发一系列构造函数的调用,顺序是:
先根据派生层次从上至下依次执行所有基类的构造函数,最后执行自身的构造函数。即基类构造函数——派生类本身的构造函数。
如果某个类是封闭类,则在执行本类构造函数之前,先按照成员对象的定义顺序执行各个成员对象所属类的构造函数。即对象成员构造函数——基类构造函数。
故构造函数的执行顺序:对象成员构造函数——基类构造函数——派生类本身的构造函数。
而当派生类对象消亡时,执行析构函数的次序与执行构造函数的次序相反,即派生类——基类——对象成员,故本题选C。
发表评论 取消回复