1

私はC++のかなりの初心者です。次の問題があります。MevisPatientModel クラスで、次のように定義しました。

typedef boost::shared_ptr<egMevisPatientModel> Ptr_t;

次に、変数を「定義」しました。

egMevisPatientModel::Ptr_t v_PatientModel;

MevisPatientModel クラスの getType 関数にアクセスしようとすると、次のようになります。

v_PatientModel->getType()

...次のメッセージが表示されます。

アサーションに失敗しました! ...shared_ptr.hpp 式 px!= 0

私の意図は、ポインタが初期化されていないということです。これで、私の質問に「適合」する多くの回答がここにあることがわかりました。でも何度も言いますが初心者です。正直なところ、これらの答えは理解できません。私を助けて、私の問題に対する明確で具体的な答えを教えてください. どうもありがとうございました。

よろしく、マルコ

4

1 に答える 1

2

newで動的オブジェクトを作成し、結果のポインターをに割り当てる必要がありますshared_ptr

egMevisPatientModel::Ptr_t v_PatientModel(
    std::make_shared<egMevisPatientModel>());
于 2013-01-10T14:11:12.310 に答える