なし対括弧でデフォルトコンストラクタを呼び出す:
different types of initialization in C++C++の可能性の重複括弧
する
Foo afoo;
などの基本コンストラクタを呼び出す間にまったく差があります対
Foo afoo();
なし対括弧でデフォルトコンストラクタを呼び出す:
different types of initialization in C++C++の可能性の重複括弧
する
Foo afoo;
などの基本コンストラクタを呼び出す間にまったく差があります対
Foo afoo();
はい:最初は可変定義、2番目は関数宣言です。現在、これらの二つの表現の違いをより興味深い質問について話し合うことができます:違いがあるかどうか
new Foo()
new Foo
はFoo
の種類とそのメンバーに依存して! Foo
は、明示的なデフォルトコンストラクタを持っている場合は、デフォルトのコンストラクタが存在しない場合
これは、クラスのメンバーにも当てはまります。変数の場合、あなたがそこに引数を取る明示的なコンストラクタはありませんか、あなたがわからない場合は、オブジェクトは、あなたが
Foo aFoo = Foo();
を使用する必要が初期化されていることを確認するために、すなわち、括弧を使用してフォームを、使用することはできません(たとえば、テンプレートコードで) 。
故障のためにありがとう、繰り返し申し訳ありません? – pyInTheSky
はい、#2は関数を宣言しています。 –
はい、最初のものは 'Foo'型のオブジェクトを構築し、2番目のものは生成しません。 –