2

aclass Aと have ステートメントがあるとします:

a1(1);

a2; a2(1);

2つのステートメントの違いは何ですか?
最初のステートメントは簡単ですが、ステートメント 2 の横で何が起こっているのでしょうか?

4

3 に答える 3

5
A a1(1);

これは、コンストラクターを引数で呼び出して、a1クラスのインスタンスを作成します。A1

A a2; a2(1);

これは実際には 2 つのステートメントです。最初の は、 のデフォルト コンストラクターを呼び出して、クラスA a2;のインスタンスを作成します。2 番目のは、パラメータを指定して呼び出します (または が定義されていない場合はエラーを生成します)。a2AAa2(1);A::operator()1Aoperator()

于 2013-10-23T07:01:14.907 に答える