了解しました。これで数か月間、私は困惑しました。他の誰かがこれを手伝ってくれるかどうかを確認します。
したがって、私のメインプログラムには、同じ基本クラス(physical_t)から派生した2種類の構造体(solarBody_t、ship_t)があります。solarBodyと船を同じベクトルに入れることができないため、両方のオブジェクトのベクトルを作成します。それらは両方ともダムポインタベクトルです。
boost :: shared_ptrsのベクトルを使用して、両方を同じベクトルに入れてみました。さて、私の理解では、shared_ptrsはダムポインタと同じセマンティクスと構文を持つ必要があります(たとえば、foobar-> mass = 42;両方で機能するはずです)。ただし、宣言をboost :: shared_ptrのベクトルに変更してダムポインターに変更するだけで、shared_ptrsのベクトルに何かをプッシュバックしようとするとエラーが発生します。
私の知る限り、これはうまくいくはずです。ブーストドキュメントは、の例を示しています
boost::shared_ptr<int> p(new int(2));
これは私がやっていることとほぼ同じです。
誰かがこれを以前に経験したことがありますか?または、すべてをベクトルに格納する別の方法を提案したいですか?
詳細については、ここにその要点があります(用語の矛盾のようなものですが、私はしゃれを作ったので、そこにあります)。