我正在动态地为对象分配内存然后如果我调用delete会发生什么? 析构函数被调用或删除函数有不同的处理内存的方式吗?
考虑以下示例:
class A
{
int x;
}
int main()
{
A *ptr = new A();
delete ptr;
return 0;
}
在哪里调用析构函数?
答案 0 :(得分:4)
使用delete运算符的表达式,首先调用适当的析构函数(如果需要),然后调用函数operator delete来释放存储。 有关详细信息,请查看here。
答案 1 :(得分:3)
delete
自动调用析构函数,然后释放内存。
答案 2 :(得分:0)
是的,delete
调用析构函数。