在父对象的自定义析构函数中重置 shared_ptr
Reset shared_ptr in custom destructor of parent object
假设我有一个对象 A,由于某种原因我需要重写它的析构函数
class A
{
private:
shared_ptr<B> m_ptr;
public:
A(shared_ptr<B> ptr) {m_ptr = ptr}
~A() {m_ptr.reset() // is this needed?
}
我是否需要重置它持有的 shared_ptr,因为如果我使用默认析构函数,它会在其中调用 shared_ptr 的析构函数?
没有
指针清理由共享指针的析构函数提供,自动调用。
请参阅 isocpp 常见问题解答中的相关条目:When I write a destructor, do I need to explicitly call the destructors for my member objects?
假设我有一个对象 A,由于某种原因我需要重写它的析构函数
class A
{
private:
shared_ptr<B> m_ptr;
public:
A(shared_ptr<B> ptr) {m_ptr = ptr}
~A() {m_ptr.reset() // is this needed?
}
我是否需要重置它持有的 shared_ptr,因为如果我使用默认析构函数,它会在其中调用 shared_ptr 的析构函数?
没有
指针清理由共享指针的析构函数提供,自动调用。
请参阅 isocpp 常见问题解答中的相关条目:When I write a destructor, do I need to explicitly call the destructors for my member objects?