抽象类成员变量
Abstract class member variable
我有一个抽象类,CAbstract
,并希望在另一个类中有一个这种类型的成员,CClass
。如果我把它作为一个指针,我将不得不自己处理删除,并且确实想避免这种情况。
- 如果我将其作为引用,当
CClass
被删除时,它会自动删除吗? - 我可以把它变成
shared_ptr
吗?shared_ptr
可以管理抽象类并指向派生类吗?
引用不会自动释放任何内容; shared_ptr
确实如此。只要遵循C++规则,它就应该优雅地处理继承情况。更具体地说,由于 shared_ptr
的析构函数默认在引用计数降至零时调用delete
,因此您需要正确实现 (virtual
) 析构函数才能使shared_ptr
工作。
相关文章:
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- 具有奇怪重复模板模式的派生类中的成员变量已损坏
- C++预处理会生成变量成员、资源库和映射
- 局部堆栈变量成员的返回值优化
- Google Mock:在目标类的构造函数中实例化的模拟私有变量成员
- 使用指向结构变量成员的指针访问该结构的成员的地址
- 如果派生类仅包含自动变量成员,是否有必要具有虚拟驱动器
- 线程安全性和静态变量/成员功能
- "static const char array"可以在 C 语言上包含变量成员吗
- 仅用于内部目的的类的所有变量/成员的技术术语是什么
- 如何强制转换变量成员以将其作为函数的引用参数传递
- 类中未声明变量成员函数
- 在 main 中初始化类的 "static const" 类型变量成员的更好方法
- c++模板类静态const变量成员作为映射键给出未定义引用
- 在类中初始化结构变量成员会导致分割错误
- 在c++中建模变量成员类型
- 模板私有静态变量成员的未定义符号
- 不能访问公共静态变量成员
- 常量变量成员在C++有什么用?
- g++ 4.8.2坚持简单变量成员是数组