增强共享指针初始化

时间:2013-01-10 14:06:20

标签: c++ pointers shared

我是C ++的初学者。我有以下问题。在我定义的MevisPatientModel类中:

typedef boost::shared_ptr<egMevisPatientModel> Ptr_t;

然后我“定义”了变量:

egMevisPatientModel::Ptr_t v_PatientModel;

现在,当我尝试访问MevisPatientModel类的getType函数时:

v_PatientModel->getType()

......我收到了以下信息:

  

断言失败了! ... shared_ptr.hpp表达式px!= 0

我的意图是指针未初始化。现在我知道这里有很多答案可以“适合”我的问题。但正如我所说,我是初学者。说实话,我不明白这些答案。请帮助我,并给我一个明确和具体的答案我的问题。非常感谢你。

Greets,Marco

1 个答案:

答案 0 :(得分:2)

您需要使用new创建动态对象,并将结果指针分配到shared_ptr

egMevisPatientModel::Ptr_t v_PatientModel(
    std::make_shared<egMevisPatientModel>());