在 C++ 中,我们总是必须在新建
指针之后delete
它。
但我试图了解这是否只是删除了指针,或者还调用了指向对象的析构函数。
例如:
Thing* pointer = new Thing;
// .. some code
delete pointer;
这是否调用了pointer
指向的对象的析构函数?还是只销毁指针?
最佳答案
Does this call the destructor of the object referenced by
pointer
?
是的,它通过调用其析构函数来销毁对象。它还会释放 new
分配给存储对象的内存。
Or does it only destory the pointer?
它对指针没有任何作用。它仍然存在,但不再指向有效对象,因此在您为其分配有效指针值之前无法使用。
关于c++ - `delete <pointer>` 是只销毁指针,还是销毁指针对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26247287/