我想要一个以共享指针作为成员的类:
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);
关于C++:将派生类保存在基类的shared_ptr中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30201116/