抽象类里的析构函数例子
时间: 2023-07-20 10:08:09 浏览: 106
构造函数析构函数举例
当一个类中含有虚函数时,通常我们需要为其定义一个虚析构函数,以确保在删除指向派生类对象的基类指针时,能够正确地调用派生类的析构函数,避免内存泄漏和未定义的行为。
而对于抽象类而言,由于其不能被实例化,因此其析构函数也需要被声明为纯虚函数,以确保其子类必须定义自己的析构函数。
以下是一个抽象类中含有纯虚析构函数的例子:
```c++
class Base {
public:
virtual ~Base() = 0; // 纯虚析构函数
};
Base::~Base() {} // 必须提供定义
class Derived : public Base {
public:
~Derived() override {
// 派生类析构函数的具体实现
}
};
```
在上述例子中,`Base` 类包含一个纯虚析构函数 `~Base()`,而 `Derived` 类继承自 `Base`,并覆盖了 `~Base()`。
需要注意的是,由于 `~Base()` 是一个纯虚函数,因此其必须提供定义。在此例中,我们通过在类外部定义 `~Base()` 来实现这一点。
阅读全文