-2
class A {
  public:
    A() { cout << "Constructor\n"; }  // (1) default constructor
};

A obj;                                // (2) instantiating obj

A obj();                              // (3) 

objインスタンス化との違いは何obj()ですか? obj上記のデフォルトコンストラクタ(1)を呼び出します。どのコンストラクターがobj()呼び出されますか?

4

2 に答える 2

1

A obj();obj引数を取らず、 を返す関数を宣言しますAAオブジェクトをまったく宣言しません。

asはオブジェクトをA obj();宣言Aしないため、コンストラクター呼び出しは発生しません。

于 2013-02-09T07:47:01.573 に答える
0

2 つ目は、関数として宣言されています。関数の名前は obj です。引数は必要ありません。タイプ A のオブジェクトを返します。

于 2013-02-09T07:48:04.190 に答える