首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么不A a(())不工作?

为什么不A a(())不工作?

提问于 2018-03-23 05:28:31
回答 2关注 0查看 112
代码语言:javascript
复制
A a(B()); //declares a function

虽然这对大多数人来说直观地看起来是一个a类型对象的声明A,将一个临时B对象作为构造函数参数,但实际上它是一个a返回函数的函数的声明A,将指针指向返回的函数B并且它本身不带参数。

代码语言:javascript
复制
A a(); //declares a function

也属于同一类别,因为它不是一个对象,而是声明一个函数。现在,在第一种情况下,这个问题的常用解决方法是在B()该处添加一组额外的括号/括号,因为编译器会将其解释为对象的声明

代码语言:javascript
复制
A a((B())); //declares an object

但是,在第二种情况下,这样做会导致编译错误

代码语言:javascript
复制
A a(()); //compile error

我的问题是,为什么?

相关文章

相似问题

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