在 C++ 中,~ 是析构函数的符号。析构函数是一种特殊的成员函数,在对象生命周期结束时被自动调用,用于清理对象所占用的资源或执行其他清理操作。析构函数的名称由波浪号 ~ 后跟类名构成,没有参数和返回类型。
通常情况下,析构函数用于释放对象在构造函数中分配的资源,比如动态分配的内存、打开的文件等。例如:
class MyClass {
public:
// 构造函数
MyClass() {
// 分配动态内存
data = new int[10];
}
// 析构函数
~MyClass() {
// 释放动态内存
delete[] data;
}
private:
int* data;
};
int main() {
MyClass obj; // 创建对象
// 对象生命周期结束时,析构函数会自动调用
return 0;
}
在这个示例中,MyClass 类包含了构造函数和析构函数。在构造函数中,它分配了一个包含 10 个整数的动态数组。在析构函数中,它释放了动态分配的内存。当 obj 对象生命周期结束时(在 main 函数的末尾),析构函数会自动调用,释放动态内存,确保资源的正确释放。