在C ++中,我们delete
之后总是需要new
指针。
但我试图理解是否只是删除指针,或者还调用指向对象的析构函数。
例如:
Thing* pointer = new Thing;
// .. some code
delete pointer;
这会调用pointer
指向的对象的析构函数吗?或者它只会破坏指针吗?
答案 0 :(得分:5)
这会调用
pointer
引用的对象的析构函数吗?
是的,它通过调用析构函数来破坏对象。它还释放new
分配用于存储对象的内存。
或者它只会破坏指针吗?
它对指针没有任何作用。它仍然存在,但不再指向有效对象,因此在为其指定有效指针值之前不能使用它。