Foo a();和Foo a;有什么区别?

beinuehao101 2011-04-27 04:16:45

struct Foo
{
int a1;
Foo(){}
Foo(int i){a1=i;}
void fun(){}
};

int main()
{
Foo a(10);
a.fun();
Foo b;
b.fun();
Foo c();
c.fun();


return 0;
}

为什么会编译不通过,高手请指教!谢谢
...全文
221 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jshoong 2011-04-27
  • 打赏
  • 举报
回复
Foo c(); 会被C++ 编译器解释为是一个函数声明
xiaoyuzi 2011-04-27
  • 打赏
  • 举报
回复
Foo c();
这个定义有问题。
飞天御剑流 2011-04-27
  • 打赏
  • 举报
回复
Foo c()是函数声明,不是定义一个Foo对象,所以c.fun()错误。
Foo c(10)这样才是定义一个Foo对象。
机智的呆呆 2011-04-27
  • 打赏
  • 举报
回复
Foo c();编译器把她当成一个函数声明了,函数名为c 返回值为Foo,木有参数
龙哥依旧 2011-04-27
  • 打赏
  • 举报
回复
Foo a();
这是什么?
pathuang68 2011-04-27
  • 打赏
  • 举报
回复
Foo c();
这句话错误了。它的意思是声明了一个函数c,该函数无参数,返回一个Foo对象。

KID_coder 2011-04-27
  • 打赏
  • 举报
回复
Foo c();
被编译器当做一个函数~
函数名c,无参,返回值Foo

Foo c; 这才是一个Foo类对象~
你那是什么写法~

64,646

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧