C ++ shared_ptr传递给基类

时间:2017-03-03 20:43:17

标签: c++ inheritance smart-pointers

我有以下代码:

struct Entity; // Simplified just for example  

struct BoxCollider
{
     std::shared_ptr<Entity> parentPtr;  

     BoxCollider(std::shared_ptr<Entity> parent) :
     parentPtr(parent)
     {}
};

struct MyObject : public Entity, public BoxCollider, std::enable_shared_from_this<MyObject>
{
     MyObject() :
     BoxCollider(this->shared_from_this())
     {}
}

而且,它没有按预期工作 - 抛出内存异常,std::bad_weak_ptr。我如何解决它?

我需要那个指针是因为我使用的Physics Engine需要up-casted(std::dynamic_pointer_castEntity指针;其中BoxCollider来自。{1}}。在我决定从原始指针转向聪明指针之前,一切正常。

0 个答案:

没有答案