Delete调用析构函数

时间:2012-02-23 08:56:29

标签: c++ destructor new-operator delete-operator

我正在动态地为对象分配内存然后如果我调用delete会发生什么? 析构函数被调用或删除函数有不同的处理内存的方式吗?

考虑以下示例:

class A 
{
 int x;
}

int main()
{
A *ptr = new A();
delete ptr;
return 0;
}

在哪里调用析构函数?

3 个答案:

答案 0 :(得分:4)

使用delete运算符的表达式,首先调用适当的析构函数(如果需要),然后调用函数operator delete来释放存储。 有关详细信息,请查看here

答案 1 :(得分:3)

delete自动调用析构函数,然后释放内存。

答案 2 :(得分:0)

是的,delete调用析构函数。