在父对象的自定义析构函数中重置 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?