gpt4 book ai didi

c++ - `delete ` 是只销毁指针,还是销毁指针对象?

转载 作者:行者123 更新时间:2023-11-30 01:16:36 24 4
gpt4 key购买 nike

在 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com