夜太美。 2019-06-09 21:18 采纳率: 0%
浏览 191

C++问题 不知道这个怎么出来结果

#include // 预处理命令
using namespace std; // 使用标准命名空间std

class A
{
public:
A(){ cout << "构造A" << endl; } // 构造函数
~A(){ cout << "析构A" << endl; } // 析构函数
};

class B: public A
{
public:
B(){ cout << "构造B" << endl; } // 构造函数
~B(){ cout << "析构B" << endl; } // 析构函数
};

int main(void)

{
B obj;

A *p = new A;
return 0; // 返回值0, 返回操作系统
}

  • 写回答

1条回答 默认 最新

  • threenewbee 2019-06-09 22:17
    关注

    构造函数的调用顺序,是先调用基类的构造函数,再调用本类的,析构的顺序正好相反,先析构自己,再析构基类。
    这段代码的析构函数的调用可能显示不出来,因为main完了才析构,而此时可能控制台句柄已经销毁了,虽然调用,但是无法输出。

    评论

报告相同问题?