#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, 返回操作系统
}
构造函数的调用顺序,是先调用基类的构造函数,再调用本类的,析构的顺序正好相反,先析构自己,再析构基类。
这段代码的析构函数的调用可能显示不出来,因为main完了才析构,而此时可能控制台句柄已经销毁了,虽然调用,但是无法输出。