首页 > 试题广场 >

有如下程序:执行后的输出结果应该是:#include i.

[单选题]
有如下程序:执行后的输出结果应该是:
#include <iostream>
class BASE{
public:
~BASE(){std::cout<<"BASE";}
};
class DERIVED: public BASE{
public:
~DERIVED(){std::cout<<"DERIVED";}
};
int main(){DERIVED x;}
  • BASE
  • DERIVED
  • BASEDERIVED
  • DERIVEDBASE
<p>构造函数先调用基类的,再调用派生类的,析构函数相反</p>
发表于 2020-08-26 18:25:01 回复(0)
瞎了我的狗眼,竟然是析构函数输出
发表于 2020-08-05 15:49:01 回复(4)
构造是先调基类的构造,再调派生类的构造,析构是先调派生类的析构,再调基类的析构,最好基类的析构写成虚析构(我一直以为不写成虚析构就不调用呢,害)
发表于 2022-05-25 15:31:52 回复(0)
构造函数先调用基类的,再调用派生类的额,析构函数相反
编辑于 2023-08-31 19:20:07 回复(1)
大概是构造函数先调用派生类后基类,析构函数调用顺序相反
发表于 2020-08-04 12:55:35 回复(2)
为什么能一眼确定析构函数?而不是类DERIVED?
发表于 2023-02-11 21:54:19 回复(0)
构造函数:先构造父类,再构造子类。
析构函数:先析构子类,再析构父类。
构造父承子,析构子承父。
发表于 2023-10-23 20:30:38 回复(0)
打印不是与实际相反吗? 为啥不是 BASEDERIVED
发表于 2023-03-24 09:00:35 回复(0)
这个没有加虚,应该不调用base的
发表于 2023-01-12 13:13:37 回复(0)
都没调用析构函数啊,来个大佬解释一下
发表于 2022-04-02 11:25:28 回复(0)
构造函数先调用基类,再调用派生类。
而析构函数与之相反
发表于 2021-03-25 09:13:16 回复(0)