关于C++类

cwbcwb505 2010-11-09 10:26:27
struct Test
{
Test( int ) {}
Test() {}
void fun() {}
};
void main( void )
{
Test a(1);
a.fun();
Test b();
b.fun();
}

请问以上代码有什么问题呢?为什么?
...全文
60 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq120848369 2010-11-09
  • 打赏
  • 举报
回复
Test b;

不解释了.
luciferisnotsatan 2010-11-09
  • 打赏
  • 举报
回复
Test b();
编译器会把这个当作函数声明。
在栈上用默认构造函数,写成 Test b;
liutengfeigo 2010-11-09
  • 打赏
  • 举报
回复
Test b();
使用默认构造函数不能这么构建一个对象,这样编译器会理解成为以个函数声明。
必须得Test b;这样
Test *b= new Test b(); //这样是可以的
無_1024 2010-11-09
  • 打赏
  • 举报
回复
声明test b()时不要要括号直接写成test b就可以了 然后调用默认构造函数
Ionstorm2 2010-11-09
  • 打赏
  • 举报
回复
Test b();
b.fun();
b无法确定执行哪个构造函数~用Test b;就对了
luciferisnotsatan 2010-11-09
  • 打赏
  • 举报
回复
Test( int ) {}漏了 ;
我是小数位 2010-11-09
  • 打赏
  • 举报
回复

struct Test
{
Test( int ) {}
Test() {}
void fun() {}
};
void main( void )
{
Test a(1);
a.fun();
Test b();
b.fun();
}
test b()這是什麼??????不出錯嗎?
linsen_519 2010-11-09
  • 打赏
  • 举报
回复
1给哪个数据成员初始化啊?
Csuxiaowu 2010-11-09
  • 打赏
  • 举报
回复
b.fun()是有问题的了
Test b();这里相当于声明函数 如果要用默认构造函数声明对象 就不要括号了

64,650

社区成员

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

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