C++ 虚函数 虚析构
时间: 2023-11-14 18:58:13 浏览: 84
C++虚析构函数、纯虚析构函数
虚函数是在基类中声明的,可以在派生类中被重写的函数。它允许通过基类指针或引用调用派生类对象的特定实现。在C++中,使用关键字`virtual`来声明虚函数。
虚析构函数是一个虚函数,用于在继承关系中正确释放资源。当一个派生类对象通过基类指针进行删除时,如果基类的析构函数不是虚函数,只会调用基类的析构函数而不会调用派生类的析构函数,可能导致资源泄漏。因此,为了正确释放资源,我们需要将基类的析构函数声明为虚函数。
例如,考虑以下代码:
```cpp
class Base {
public:
virtual ~Base() {
// 析构函数的实现
}
};
class Derived : public Base {
public:
~Derived() {
// 派生类析构函数的实现
}
};
```
在这个例子中,`~Base()` 被声明为虚析构函数,所以当通过基类指针删除派生类对象时,将会正确调用 `~Derived()` 进行资源的释放。
阅读全文