delete和析构函数
时间: 2024-01-03 19:21:59 浏览: 78
delete和析构函数是C++中的两个概念,它们在对象的生命周期中起着不同的作用。
delete是用于释放动态分配的内存的操作符。在C++中,通过new关键字可以动态地创建对象,并将其存储在堆区。当对象不再需要时,可以使用delete操作符将其销毁,并释放所占用的内存空间。如果没有使用delete来释放内存,就会导致内存泄漏,即程序无法再次使用这块内存空间。
析构函数是一个特殊的成员函数,用于在对象销毁时执行清理工作。当对象的生命周期结束时,析构函数会自动被调用。在析构函数中,可以释放对象所占用的资源,例如关闭文件、释放内存等。析构函数的名称与类名相同,前面加上一个波浪号(~)作为标识。
下面是一个示例,演示了delete和析构函数的使用:
```cpp
#include <iostream>
class Employee {
private:
int id;
std::string name;
public:
Employee(int empId, std::string empName) {
id = empId;
name = empName;
std::cout << "Employee " << name << " created." << std::endl;
}
~Employee() {
std::cout << "Employee " << name << " destroyed." << std::endl;
}
};
int main() {
Employee* emp = new Employee(1, "John");
// 使用delete释放内存
delete emp;
return 0;
}
```
在上面的示例中,我们创建了一个名为Employee的类,它具有id和name两个成员变量。在main函数中,我们使用new关键字动态地创建了一个Employee对象,并将其存储在堆区。然后,我们使用delete操作符释放了这块内存空间。在对象销毁时,析构函数被自动调用,输出了相应的信息。
阅读全文