删除表达式是否调用析构函数?

问题描述 投票:0回答:3

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

考虑以下示例:

class A 
{
 int x;
}

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

析构函数在哪里调用?

c++ destructor new-operator delete-operator
3个回答
4
投票

带有删除运算符的表达式,首先调用适当的析构函数(如果需要),然后调用函数运算符delete来释放存储。 请查看这里了解详情。


3
投票

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


0
投票

是的,

delete
调用析构函数。

© www.soinside.com 2019 - 2024. All rights reserved.