にArrayListに同様にC++で民間からのコンストラクタ内のベクトルを初期化する方法を、私は次の操作を行います:私はJavaでは</p> <p>可能な限り、これはのようにシンプルにしてみましょうJavaの
public class foo{
private final int x;
private final ArrayList<classname1> one;
private final ArrayList<classname2> two;
//constructor
public foo(int x){
this.x = x;
one = new ArrayList<>();
two = new ArrayList<>();
menu();
}
私はその後、私は現在、しかし、C++を使用していて、私はC++でのArrayListの同等のベクトルであることを読んでいた私のコード
全体で「1」と「2」を使用します。私は実験を試みましたが、私はどのようにJavaコードのようにコンストラクタ内のベクトルを初期化するのかを理解することは難しいと思っています。
これは、私は、C++で、これまで持っているものです。
class foo{
private: int x;
private: vector<classname1> one;
private: vector<classname2> two;
public:
//constructor
foo(int x) {
this->x= x;
//how would I initialize the vectors here like in java? Something like but of course it doesn't work:
one = new Vector<>();
two = new Vector<>();
menu();
}
ありがとうございました!どんな助けもありがたい。
これは初期化する対象によって異なりますが、これを明確にする必要があります。しかし、デフォルトの初期化ベクトルが必要な場合は、何もしないでください。 – juanchopanza
ちょうど 'foo(int val):x(val){menu(); } '。 'one'と' two'は 'foo'オブジェクトと同じ割り当て空間にあります。 'foo'クラスから独立させたい場合は、' unique_ptr> one'または別のスマートポインタで宣言する必要があります。 –
Franck