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