一组空的圆括号(圆括号)不能用于调用C++中的默认构造函数,这有什么好的理由吗?
MyObject object; // ok - default ctor
MyObject object(blah); // ok
MyObject object(); // error
我似乎每次都会自动输入"()“。有什么好的理由不允许这样做吗?
发布于 2008-10-07 20:15:41
因为它被视为函数的声明:
int MyFunction(); // clearly a function
MyObject object(); // also a function declaration
发布于 2008-10-07 20:15:22
函数声明使用了相同的语法-例如,函数object
,不带参数并返回MyObject
发布于 2008-10-07 20:15:26
因为编译器认为它是一个不带参数的函数声明,并返回一个MyObject实例。
https://stackoverflow.com/questions/180172
复制相似问题