首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >带有空方括号的默认构造函数

带有空方括号的默认构造函数
EN

Stack Overflow用户
提问于 2008-10-07 20:13:11
回答 5查看 35.1K关注 0票数 217

一组空的圆括号(圆括号)不能用于调用C++中的默认构造函数,这有什么好的理由吗?

代码语言:javascript
复制
MyObject  object;  // ok - default ctor
MyObject  object(blah); // ok

MyObject  object();  // error

我似乎每次都会自动输入"()“。有什么好的理由不允许这样做吗?

EN

回答 5

Stack Overflow用户

发布于 2008-10-07 20:15:41

因为它被视为函数的声明:

代码语言:javascript
复制
int MyFunction(); // clearly a function
MyObject object(); // also a function declaration
票数 118
EN

Stack Overflow用户

发布于 2008-10-07 20:15:22

函数声明使用了相同的语法-例如,函数object,不带参数并返回MyObject

票数 51
EN

Stack Overflow用户

发布于 2008-10-07 20:15:26

因为编译器认为它是一个不带参数的函数声明,并返回一个MyObject实例。

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/180172

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档