c++でジェネリック型をインスタンス化するにはどうすればよいですか?
List<X>
where X
is オブジェクトを作成したい場合。どうやってやるの?
c++でジェネリック型をインスタンス化するにはどうすればよいですか?
List<X>
where X
is オブジェクトを作成したい場合。どうやってやるの?
リストをインスタンス化するだけです。ジェネリックスはコンパイラーによって消去されるため、これは実行時のリストと完全に同等です。
Java で実行時にジェネリック型をインスタンス化できないことを考えると、C++ でそれを行うことはできないと確信しています。
ジェネリックはコンパイル時の機能です。作成したものをコンパイラに渡したくない場合、たとえばプレーンな Java コードをテキストで渡したい場合を除き、ジェネリックは役に立たないでしょう。(もしあなたがこれをやりたいのなら、C++ は最良の選択ではないと思います)
Xがオブジェクトであるリストを作成したい場合
Java では、オブジェクトへの参照X
の一種です。すべてのリストのコードは参照のみを保持するため、コードは同じであり、C++ のようにテンプレート化されていません。これは、プリミティブ、構造体、またはオブジェクトを使用できず、参照のみを使用できることを意味します。