抽象类成员变量

时间:2012-12-03 09:24:15

标签: c++

我有一个抽象类CAbstract,并希望在另一个类CClass中拥有此类型的成员。如果我把它作为指针,我将不得不照顾自己的删除,并且确实想避免这种情况。

  • 如果我将其作为参考,会在CClass被删除后自动删除吗?
  • 我可以将其设为shared_ptr吗?可以shared_ptr管理抽象类并指向派生类吗?

1 个答案:

答案 0 :(得分:3)

引用不会自动解除分配任何内容; shared_ptr。只要遵循C ++的规则,它就应该优雅地处理继承情况。更具体地说,由于shared_ptr的析构函数在引用计数降为零时默认调用delete,因此需要正确实现(virtual)析构函数以使shared_ptr正常工作