C++ 基类和子类构造器析构器的执行顺序

版权声明:博客注明来源即可。 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;
}


结果

1.jpg

【注】

  • 构造器在类定义变量时调用
  • 析构器在出了当前作用域的时候调用,通俗点讲就是:类定义变量所在的大括号,出了这个大括号就执行析构器(《C++ 静态方法和静态属性》这篇博文里的演示涉及到了这一点,可以看一下)

猜你喜欢

转载自blog.csdn.net/u014027680/article/details/83005083
今日推荐