首页 > 试题广场 >

分析一下程序的运行结果: class CBase { pub

[单选题]
分析一下程序的运行结果:
class CBase
{
public:
    CBase(){cout<<”constructing CBase class”<<ENDL;}
    ~CBase(){cout<<”destructing CBase class”<<ENDL;}
};

class CSub : public CBase
{
public:
    CSub(){cout<<”constructing CSub class”&l
  • constructing CSub class 
    constructing CBase class   
    destructing CSub class  
    destructing CBase class
  • constructing CBase class
    constructing CSub class
    destructing CBase class
    destructing CSub class
  • constructing CBase class        
    constructing CSub class         
    destructing CSub class          
    destructing CBase class
  • constructing CSub class
    constructing CBase class
    destructing CBase class
    destructing CSub class
推荐
【正确答案】C
【解析】创建派生类 CSub 的对象,会先执行基类 CBase 的构造函数,对基类 CBase 中的成员初始化,然后调用子类 CSub 的构造函数。当子类 CSub 的对象销毁时,先调用子类 CSub 的析构函数,然后调用父类 CBase 的析构函数。

继承知识点讲解】
更多C++基础专业知识讲解,点击链接即可查看
编辑于 2021-11-17 12:53:36 回复(2)
父类的析构函数为什么不是虚函数呢?求解答
发表于 2015-09-28 20:30:06 回复(3)
参考 http://blog.csdn.net/hemmingway/article/details/7853713 
发表于 2015-06-30 09:58:39 回复(0)
子类对象生成时:先调用父类的构造函数,然后在调用子类的构造函数; 析构时相反
编辑于 2021-11-17 12:53:36 回复(2)

当派生类中不含对象成员时

· 在创建派生类对象时,构造函数的执行顺序是:基类的构造函数→派生类的构造函数;

· 在撤消派生类对象时,析构函数的执行顺序是:派生类的构造函数→基类的构造函数。

当派生类中含有对象成员时

· 在定义派生类对象时,构造函数的执行顺序:基类的构造函数→对象成员的构造函数→派生类的构造函数;

· 在撤消派生类对象时,析构函数的执行顺序:派生类的构造函数→对象成员的构造函数→基类的构造函数。

发表于 2015-09-05 11:05:24 回复(1)
题目都没给全,搁这碰瓷呢
发表于 2022-03-17 17:51:52 回复(0)
看不全题目啊。。。
发表于 2022-05-08 20:24:49 回复(0)
这题出的有问题 没有虚析构函数
发表于 2018-10-26 15:38:44 回复(0)
题目都不完整,做个屁
发表于 2023-08-17 16:47:15 回复(0)
子带父的话,就是父先出来,子在出来,子走,父再走。
发表于 2022-08-30 16:50:12 回复(0)
子类对象生成时,先调用父类构造函数,再调用子类构造函数 析构时,先子后父
发表于 2019-12-06 09:03:36 回复(0)
构造时先构造父类,析构时先子类
发表于 2018-01-18 22:30:48 回复(0)
构造函数先执行父类在执行子类,析构函数不是虚函数
发表于 2017-03-28 09:32:15 回复(0)
子类对象生成时:先调用父类的构造函数,然后在调用子类的构造函数; 析构时相反
发表于 2016-08-15 20:50:18 回复(0)
因为是派生类的对象,不是基类的指针或者引用。
发表于 2016-08-13 15:22:08 回复(0)
不认真,我也是醉了
发表于 2015-08-01 01:17:09 回复(0)