shared_ptrをクラスのメンバとして使用したいのですが、shared_ptrが管理する型は毎回異なり、実行時にのみ認識されます。そのようなメンバーを宣言して後でそれを初期化する方法はありますか?generic shared_ptrをクラスのメンバとして
0
A
答えて
3
はい。
共通の基本クラス、たとえばBase
を定義し、その中に共通のインタフェースを仮想関数として宣言し、そこから派生し、派生クラスに仮想関数を実装することを意味します。
std::share_ptr<Base> ptr;
//now ptr can store an instance of any derived class from Base
それとも、共通の基本クラスを定義することはできません場合は、boost::any
を使用することができます。あなたがそうなら、あなたはこのように使用することができます。 Boostを使用できない場合は、any
クラスを自分で定義することができます。このサイトとgoogleでタイプ消去を検索してください。
次は、型消去に2-ページの記事で、あなたは(完了していないが)second pageにboost::any
の実装を見つけることができます:
1
タイプがある場合無関係な場合は、Boost.Any
のようなものを使用できます。それ以外の場合は、@Nawaz saysを実行します。
関連する問題
- 1. クラス参照メンバが同じクラスの他のメンバを指している
- 2. shared_ptrメンバ変数を初期化する、新しいvs make_shared?
- 3. 抽象基本クラスのNHibernateとgenericリスト
- 4. shared_ptrでベクトルとクラスへの変換
- 5. scala-cass generic caseandクラスとしてcassandraテーブルから読み込み
- 6. クラス内のメンバ変数としてmutexを使用
- 7. クラス内のパラメータとして関数メンバを渡すC++
- 8. C++ - メンバ関数を介してクラスのメンバの値を変更する
- 9. ローカルのunique_ptrをshared_ptrとして返す
- 10. Generic型クラスのEqualityメソッドを実装していますか?
- 11. Genericクラスに変換する
- 12. ベクトルをメンバ変数として持つクラスでブーストメモリプールを使う
- 13. クラスのメンバ関数
- 14. 静的クラスのメンバ
- 15. C#generic、ここでTクラス:(継承クラス)
- 16. GenericクラスのModelStateを確認するC#
- 17. スマートポインタをクラス内の引数として渡す:scoped_ptrまたはshared_ptr?
- 18. C++のクラスとメンバ変数のヘルプ
- 19. C#Generic Vector4クラスを作成していますか?
- 20. C++ポインタテンプレートクラスのメンバとして
- 21. boost :: shared_ptrとstd :: shared_ptrの共存
- 22. genericとのコンパイルエラー
- 23. genericクラスのcompareTo関数の使用
- 24. デフォルト値は::クラスのコンストラクタでのshared_ptr
- 25. メンバ関数をメンバ関数のパラメータとして渡す
- 26. 私は別のクラスからクラスのメンバを持ってしようとしています別の
- 27. jrubyの抽象javaクラスをgenericと呼び出す
- 28. genericクラスのtypeクラスのオブジェクトをパラメータとして使用するにはどうすればよいですか? -
- 29. クラスの静的メンバ変数
- 30. 上位クラスのメンバC++
'std :: shared_ptr 'を意味しますか? –
@KerrekSB:おっと。はい。ありがとう。 – Nawaz