编译器有如下规律:尽可能地解释为函数声明。
class Widget {};
Widget w1();
Widget w2;
语句Widget w1(); 你以为编译器会使用Widget默认构造函数创建一个对象,
编译器却将其解释为一个不带参数的、返回Widget对象的函数。
幸好,编译器会给出警告:
警告 C4930 “Widget w(void)”: 未调用原型函数(是否是有意用变量定义的?)
正确的调用方式为Widget w2;
编译器有如下规律:尽可能地解释为函数声明。
class Widget {};
Widget w1();
Widget w2;
语句Widget w1(); 你以为编译器会使用Widget默认构造函数创建一个对象,
编译器却将其解释为一个不带参数的、返回Widget对象的函数。
幸好,编译器会给出警告:
警告 C4930 “Widget w(void)”: 未调用原型函数(是否是有意用变量定义的?)
正确的调用方式为Widget w2;