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

C++为什么要虚析构函数(简析)

一个类如果有子类,那么该类的析构函数必须是虚函数,否则会出现释放不完全的情况,导致内存泄漏。

如果父类的析构函数不是虚函数,那么在销毁对象时,只会调用父类析构函数,子类对象无法释放,导致内存泄漏;
如果父类析构函数是虚函数,那么在释放的时候,首先调用子类析构函数,使得子类对象得以释放,接着进入父类析构函数,释放父类对象,这样子类父类都能够得以完全释放。
这就是为什么父类析构函数必须是虚函数的原因。

发布了3 篇原创文章 · 获赞 2 · 访问量 378

猜你喜欢

转载自blog.csdn.net/hwx802746/article/details/104997111
今日推荐