-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,它不接受任何参数并且返回一个A. 它根本不声明A对象。

由于A obj();不声明A对象,因此不会导致任何构造函数调用。

于 2013-02-09T07:47:01.573 回答
0

第二个被声明为函数。函数的名称是 obj。它不需要任何论据。它返回类型 A 的对象。

于 2013-02-09T07:48:04.190 回答