C++ 抽象类成员变量
我有一个抽象类,C++ 抽象类成员变量,c++,C++,我有一个抽象类,CAbstract,并且希望在另一个类,CClass中有一个这种类型的成员。若我让它成为一个指针,我将不得不注意删除我自己,我希望避免这种情况 如果我把它作为一个引用,当CClass被删除时,它会被自动删除吗 我可以把它变成一个共享的\u ptr?shared\u ptr可以管理抽象类并指向派生类吗 引用不会自动取消分配任何内容共享\u ptr执行。只要遵循C++的规则,就应该优雅地处理继承情况。更具体地说,由于当引用计数降至零时,shared\u ptr的析构函数在默认情况下
CAbstract
,并且希望在另一个类,CClass
中有一个这种类型的成员。若我让它成为一个指针,我将不得不注意删除我自己,我希望避免这种情况
- 如果我把它作为一个引用,当
被删除时,它会被自动删除吗CClass
- 我可以把它变成一个
?共享的\u ptr
可以管理抽象类并指向派生类吗shared\u ptr
- 引用不会自动取消分配任何内容<代码>共享\u ptr执行。只要遵循C++的规则,就应该优雅地处理继承情况。更具体地说,由于当引用计数降至零时,
shared\u ptr
的析构函数在默认情况下调用delete
,因此需要正确实现(virtual
)析构函数,以使shared\u ptr
工作。引用不会自动解除分配任何内容<代码>共享\u ptr执行。只要遵循C++的规则,就应该优雅地处理继承情况。更具体地说,由于当引用计数降至零时,shared\u ptr
的析构函数在默认情况下调用delete
,因此需要正确实现(virtual
)析构函数,以使shared\u ptr
工作。引用必须引用某些内容。我建议shared\u ptr
或unique\u ptr
@JoachimPileborg我打算为构造函数提供一个临时引用。这就是在这种情况下不能使用引用的原因之一。一旦设置了引用,就不能更改。@JoachimPileborg我不想更改它。它将被提供给CClass
的构造函数,然后在CClass
的整个生命周期内保持不变,引用必须引用某些内容。我建议shared\u ptr
或unique\u ptr
@JoachimPileborg我打算为构造函数提供一个临时引用。这就是在这种情况下不能使用引用的原因之一。一旦设置了引用,就不能更改。@JoachimPileborg我不想更改它。它将提供给CClass
的构造函数,然后在CClass