C++中析构函数
析构函数
析构函数(Destructor)是类的一种特殊成员函数,用于在对象的生命周期结束时执行清理操作,他的主要作用是释放对象占用资源,例如动态分配的内存,文件句柄或网络连接等。
特点
- 名称与类名称相同 单前面加一个波浪号
~
。 - 无返回值,也不能指定参数。
- 自动调用:当对象超出作用域或被显示删除(
delete
)时,析构函数会被自动调用。 - 一个类只能有一个析构函数 ,不能重载。
示例代码
#include <iostream>
using namespace std;class MyClass{public:MyClass(){cout << "调用了构造函数!" << endl;}~MyClass(){cout << "调用了析构函数" << endl;}
};int main(){MyClass obj;// 构造函数被调用// 当程序结束时,析构函数会被调用return 0;
}
注意事项
1.如果类中有动态分配的资源,必须在析构函数中释放它们以避免内存泄漏。
2.在继承中,派生类的构造函数会先执行,然后再调用基类的析构函数。
3.如果类中没有显示定义析构函数,编译器会生成一个默认的析构函数。
常见用途
- 释放动态内存
- 关闭文件或者网络连接
- 清理临时数据