C++ 继承中的析构函数
在C++面向对象编程中,析构函数是对象生命周期结束时自动调用的特殊成员函数,用于释放资源并执行必要的清理工作。当我们涉及到继承关系时,析构函数的行为变得尤为重要,不正确的使用可能导致内存泄漏和资源未释放等严重问题。
析构函数基础回顾
在深入继承中的析构函数之前,让我们先简单回顾一下析构函数的基本概念:
- 析构函数名称与类名相同,前面加上波浪号(~)
- 不接受参数,也没有返回值
- 每个类只能有一个析构函数
- 如果未显式定义,编译器会自动生成默认析构函数
class MyClass {
public:
MyClass() {
// 构造函数
std::cout << "构造函数被调用" << std::endl;
}
~MyClass() {
// 析构函数
std::cout << "析构函数被调用" << std::endl;
}
};
int main() {
{
MyClass obj; // 构造函数被调用
} // 离开作用域,析构函数被调用
return 0;
}
// 输出:
// 构造函数被调用
// 析构函数被调用