C++析构函数是一种特殊的成员函数,它在对象生命周期结束时自动被调用,用于执行清理操作,如释放分配给对象的内存、关闭文件句柄、删除动态分配的内存等。
析构函数对于管理资源非常重要,特别是当对象拥有需要显式释放的资源时。如果类管理了动态分配的内存、文件句柄、网络连接等资源,那么析构函数应该负责在对象销毁时释放这些资源。
析构函数名称与类的名称相同,在析构函数前加了~作为前缀,它不返回任何值,也不带有任何参数。
析构函数示例:
#include <iostream>
using namespace std;
class MyClass {
private:
int* ptr;
public:
// 构造函数
MyClass() {
ptr = new int(10);
cout << "Object is being created" << endl;
}
// 析构函数
~MyClass() {
delete ptr;
cout << "Object is being deleted" << endl;
}
void display() const {
cout << "*ptr = " << *ptr << endl;
}
};
int main() {
MyClass obj; // 创建MyClass的对象,调用构造函数
obj.display();
// 当obj的生命周期结束时(即main函数返回时),
// 析构函数会自动被调用
return 0;
}