【发布时间】:2021-02-15 21:35:25
【问题描述】:
假设我们在 hpp 文件中有一个带有唯一指针的简单结构:
struct SomeType
{
SomeType() = default;
~SomeType();
std::unique_ptr<int> ptr;
};
在 cpp 中我们有:
SomeType::~SomeType()
{
ptr.reset();
}
这个析构函数在某种程度上有用还是只是多余的? 是否有可能对内存/堆造成双重删除或其他不必要的副作用?
【问题讨论】:
-
带有唯一ptr的多余
-
在某些情况下,您可能需要在析构函数中运行某些代码或释放其他成员之前释放
ptr,但通常这是多余的。
标签: c++ destructor heap-memory unique-ptr