gpt4 book ai didi

在析构函数中对唯一指针调用重置的 C++ 语义

转载 作者:行者123 更新时间:2023-12-03 07:09:22 27 4
gpt4 key购买 nike

假设我们在 hpp 文件中有一个带有唯一指针的简单结构:

struct SomeType
{
SomeType() = default;
~SomeType();

std::unique_ptr<int> ptr;
};

在 cpp 中我们有:

SomeType::~SomeType()
{
ptr.reset();
}

这个析构函数是有用的还是多余的?是否有可能对内存/堆产生双重删除或其他不需要的副作用?

最佳答案

如果这是析构函数中唯一的一行代码,那么它是不必要的,无论哪种方式都会发生。所有成员析构函数都会在父析构函数之后自动调用。

如果您在析构函数中还有其他事情要做并且/或者操作的确切顺序很重要,那么它可能会很有用。

不会发生双重删除。

关于在析构函数中对唯一指针调用重置的 C++ 语义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64658925/

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