2

重複の可能性:
C++ オブジェクトのインスタンス化と代入

私はC ++にまったく慣れていないので、オブジェクトをインスタンス化することの違い(もしあれば)は何だろうと思っていました

int main () {
  vector< int > x(2);
}

また

int main () {    
  vector< int > x = vector< int > (2); 
}

後者は書くのに時間がかかるという事実を除いて。前もって感謝します!

4

1 に答える 1

7

違いは主に文法的なものです。

  • vector<int> x(2);直接初期化です。

  • vector<int> x = vector<int>(2);コピーの初期化です。

後者では、正式にはクラスにアクセス可能なコピーコンストラクターが必要ですが、実際にはコピーは省略され、2つのバージョンはまったく同じコードを生成します。

常に直接初期化を優先する必要があります。

あなたはまた狂気に行くことができます:

  • vector<int> x = vector<int>(vector<int>(vector<int>(2)));
于 2012-08-17T10:32:10.873 に答える