A a();
Run Code Online (Sandbox Code Playgroud)
它声明了一个返回A类型的函数.这对许多用户来说都是一个惊喜.这与最烦恼的解析有关.
在以下两个例子中,意图是显而易见的
A a(3); // an object a, of type A, initialized with 3
A a(int); // a *function* a, taking an int parameter and returning A
Run Code Online (Sandbox Code Playgroud)
但是当括号为空时,默认值是函数声明.如果你想要一个变量,你应该删除();
A a;
Run Code Online (Sandbox Code Playgroud)