0
我想有,有一個共享的指針作爲成員的類的shared_ptr的:C++:儲蓄派生類的基類
class MyClass {
public:
shared_ptr<MyAbstractBaseClass> myPointer;
}
我怎樣才能讓指針指向一個派生類的實例?
我想有,有一個共享的指針作爲成員的類的shared_ptr的:C++:儲蓄派生類的基類
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);
'myPointer.reset(new SomethingDerivedFromMyAbstractBaseClass());'會是一種方法。還有其他人。查看['std :: shared_ptr <>'](http://en.cppreference.com/w/cpp/memory/shared_ptr)的成員鏈接瞭解更多信息。 – WhozCraig