版权声明:博客注明来源即可。 https://blog.csdn.net/u014027680/article/details/83005083
来源:我的博客站 OceanicKang |《C++ 基类和子类构造器析构器的执行顺序》
例子
#include <iostream>
class BaseClass
{
public:
BaseClass();
~BaseClass();
};
class ChildClass : public BaseClass
{
public:
ChildClass();
~ChildClass();
};
BaseClass::BaseClass()
{
std::cout << "这是基类构造器" << std::endl;
}
BaseClass::~BaseClass()
{
std::cout << "这是基类析构器" << std::endl;
}
ChildClass::ChildClass() : BaseClass()
{
std::cout << "这是子类构造器" << std::endl;
}
ChildClass::~ChildClass()
{
std::cout << "这是子类析构器" << std::endl;
}
int main(void)
{
ChildClass test;
return 0;
}
结果
【注】
- 构造器在类定义变量时调用
- 析构器在出了当前作用域的时候调用,通俗点讲就是:类定义变量所在的大括号,出了这个大括号就执行析构器(《C++ 静态方法和静态属性》这篇博文里的演示涉及到了这一点,可以看一下)