簡體   English   中英

C ++:將派生類保存在基類的shared_ptr中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM