抽象类成员变量

Abstract class member variable

本文关键字:变量 成员 抽象类      更新时间:2023-10-16

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

  • 如果我将其作为引用,当CClass被删除时,它会自动删除吗?
  • 我可以把它变成shared_ptr吗?shared_ptr可以管理抽象类并指向派生类吗?

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