【发布时间】:2017-02-06 07:09:44
【问题描述】:
所以我在 C++ 中为一个类添加了一个析构函数。
class object { ~object() };
并用新方法声明了一个对象,从而在堆上分配它
object *pointer = new object;
我还需要使用吗
delete(object);
程序结束时的方法? (析构函数不是已经对此负责了吗?)
【问题讨论】:
-
是的,在这种情况下,您仍然需要调用
delete才能调用析构函数并释放内存。 -
或
std::unique_ptr<object> pointer(new object());并停止让裸指针拥有资源。 -
而且,作为新的,删除不需要括号..
-
大多数时候,你不需要首先使用指针和
new。 -
析构函数负责销毁对象。它不负责决定对象何时被销毁。这两个概念有很大的不同。
标签: c++ heap-memory destructor