Say I have an object A who'se destructor I need to override for some reason
class A 
{ 
private: 
    shared_ptr<B> m_ptr; 
public: 
    A(shared_ptr<B> ptr) {m_ptr = ptr}
    ~A() {m_ptr.reset() // is this needed?
}
Do I need to reset the shared_ptr it holds because if I was using the default destructor, it would have called the shared_ptr's destructor inside of it?
 
    