class A {
public:
A() { cout << "Constructor\n"; } // (1) default constructor
};
A obj; // (2) instantiating obj
A obj(); // (3)
实例化obj
和obj()
之间有什么区别? obj
调用上面提到的默认构造函数(1)。哪个构造函数将obj()
调用?
答案 0 :(得分:1)
A obj();
声明一个名为obj
的函数,该函数不带参数,返回A
。它根本没有声明A
对象。
由于A obj();
未声明A
个对象,因此不会导致任何构造函数调用。
答案 1 :(得分:0)
第二个被声明为一个函数。对象的名称是obj。它不需要任何参数。它返回A类型的对象。