0

我有一个抽象类 ,CAbstract并且希望在另一个类中拥有这种类型的成员,CClass。如果我让它成为一个指针,我将不得不自己处理删除,并且希望避免这种情况。

  • 如果我把它作为参考,它会在CClass被删除时自动删除吗?
  • 我可以把它做成一个shared_ptr吗?可以shared_ptr管理抽象类和指向派生类吗?
4

1 回答 1

3

引用不会自动释放任何东西;shared_ptr做。只要您遵循 C++ 的规则,它就应该优雅地处理继承情况。更具体地说,由于默认情况下在引用计数降至零时shared_ptr调用 ' 的析构函数,因此您需要正确实现 ( ) 析构函数才能正常工作。deletevirtualshared_ptr

于 2012-12-03T09:28:36.787 回答