虚析构函数,派生类调用基类构造方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了虚析构函数,派生类调用基类构造方法相关的知识,希望对你有一定的参考价值。

#include <iostream>
using namespace std;

class A{

public:
	A()
	{
		cout<<"construct A"<<endl;
	}

	A(int a)
	{
		cout<<"construct int A"<<endl;
	}

	virtual ~A()  //析构函数 必须 声明为 虚函数,才能彻底释放内存空间
	{
		cout<<"destory A"<<endl;
	}

};

class B : public A{

public:
	B()
	{
		cout<<"construct B"<<endl;
	}

	B(int a):A(a)  //构造器调用A中int构造方法
	{
		cout<<"construct int B"<<endl;
	}
	
	~B()
	{
		cout<<"destory B"<<endl;
	}

};

class C:public B{

public:

	C()
	{
		cout<<"construct C"<<endl;
	}

	~C()
	{
		cout<<"destory C"<<endl;
	}

};


int main()
{
	A *p = new C();

	delete p;


	return 0;
}

  

以上是关于虚析构函数,派生类调用基类构造方法的主要内容,如果未能解决你的问题,请参考以下文章

虚析构函数与纯虚函数

C++虚析构函数

基类的析构函数写成virtual虚析构函数

为多态基类声明一个虚析构函数

虚析构函数详解

构造函数与拷贝控制