在C++中,析构函数用于释放对象占用的资源。当一个类存在继承关系时,尤其是通过基类指针或引用来删除派生类对象时,使用虚析构函数是非常重要的。
什么是虚析构函数?
虚析构函数是指在基类中将析构函数声明为virtual的析构函数。这样,使用基类指针删除派生类对象时,可以确保调用派生类的析构函数,从而正确释放派生类对象占用的资源。
为什么需要虚析构函数?
如果基类的析构函数不是虚函数,那么通过基类指针删除派生类对象时,只会调用基类的析构函数,而不会调用派生类的析构函数。这会导致派生类的资源无法正确释放,可能引发内存泄漏或其他资源泄漏问题。
示例:虚析构函数的使用
示例1:没有虚析构函数
#include <iostream>
class Base {
public:
Base() {
std::cout << "Base Constructor" << std::endl;
}
~Base() {
std::cout << "Base Destructor" << std::endl;
}
};
class Derived : public Base

最低0.47元/天 解锁文章
601

被折叠的 条评论
为什么被折叠?



