c++ - 删除调用析构函数

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

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

考虑以下示例:

class A 
{
 int x;
}

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

析构函数在哪里调用?

最佳答案

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

关于c++ - 删除调用析构函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9409774/

相关文章:

c++ - 默认函数参数和单一定义规则

c++ - 内存分配的专用函数导致内存泄漏?

C++ - 销毁顺序 - 函数的静态成员在主类析构函数之前被销毁

c++ - 是否可以删除非新对象?

c++ - 未调用析构函数

c++ - 是否可以完全禁用默认的 C++ new 运算符?

c++ 带参数的新类数组

c++ - 使用覆盖 new[] 运算符创建字符串数组

c++ - 将字符串存储到 vector 中

java - 从 C++ 执行 Java 的简单性