[英]C++: saving derived class in shared_ptr of base class
我想要一個具有共享指針作為成員的類:
class MyClass {
public:
shared_ptr<MyAbstractBaseClass> myPointer;
}
如何使指針指向派生類的實例?
如果問題是關於分配普通派生指針的,那么您要做的就是:
struct B { };
struct D : B { };
D *pd = new D;
shared_ptr<B> sp(pd);
如果問題是將shared_ptr轉換為派生類,或者將shared_ptr轉換為基類,則可以執行以下操作:
shared_ptr<D> spd = make_shared<D>();
shared_ptr<B> sp = static_pointer_cast<B>(spd);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.