C++ 析构函数虚函数
时间: 2023-11-14 18:55:21 浏览: 124
c++虚析构函数及虚函数的详细例子.rar
C++中的析构函数可以被声明为虚函数。虚函数是在基类中声明的,用于实现运行时多态性。当基类的指针指向派生类的对象时,使用虚函数可以确保调用派生类的成员函数。
析构函数是用来释放对象所占用的资源和执行清理工作的特殊成员函数。当一个对象被销毁时(如超出作用域、被delete掉等),析构函数会自动调用。
当基类的析构函数被声明为虚函数时,它会自动成为一个虚析构函数。这意味着,当通过基类指针删除派生类对象时,会调用到正确的析构函数,以确保派生类中的资源得到正确释放。
示例代码如下:
```cpp
class Base {
public:
virtual ~Base() {
// 析构函数的实现
}
};
class Derived : public Base {
public:
~Derived() {
// 派生类的析构函数实现
}
};
int main() {
Base* obj = new Derived();
delete obj; // 调用Derived的析构函数
return 0;
}
```
在上面的例子中,使用基类指针 `obj` 指向派生类对象 `Derived`。当 `delete` `obj` 时,会自动调用派生类 `Derived` 的析构函数,即使基类的析构函数被声明为虚函数。这就是虚析构函数的作用。
阅读全文