C++ 设置基类的析构函数为虚函数

Posted

tags:

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

析构函数是当一个对象的生命周期结束时自动调用的一个函数。

在下面的函数中,执行后会发现只有基类的析构函数被调用了,派生类的析构函数并没有被调用,导致对象没有被正常的释放,导致内存泄漏。

把基类的析构函数设置为虚函数,在执行动态调用时就会执向对象的析构函数。

class Subject
{
public:
	~Subject();

	Subject();

};

class ConcreteSubject : public Subject
{
public :
	ConcreteSubject();

	~ConcreteSubject();

};
Subject * con = new ConcreteSubject();
delete con;

本文出自 “一世绝影” 博客,请务必保留此出处http://hellolzx.blog.51cto.com/8594395/1774695

以上是关于C++ 设置基类的析构函数为虚函数的主要内容,如果未能解决你的问题,请参考以下文章

C++编程经验:为虚基类做虚析构函数的必要性

只有基类的析构函数需要为虚函数

为什么析构函数必须是虚函数?为什么C++默认的析构函数不是虚函数

c++析构函数为什么要为虚函数

基本语言

虚析构函数(c++常问问题五)