新手的问题:一个怪怪的问题……

joyhome 2005-06-11 01:15:01
问题是这样的:
#include <iostream.h>
class B{
public:
B(){cout<<"aa"<<endl;}
B(B &b){cout<<"kk"<<endl;}
};
void main(){
B b;
B c=b;
}
为什么输出结果是:aa 而不是:aa
kk
...全文
127 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
joyhome 2005-06-11
  • 打赏
  • 举报
回复
我明白大家的意思了,大家是说"B c=b;"和"B c(b);"都是调用拷贝构造函数,"B c=b;"和"B c(b);"只是表示的形式不一样,结果是一样的。
谢谢大家
darkstar21cn 2005-06-11
  • 打赏
  • 举报
回复
B c=b;
这个改成
B c(b);就没有这么多不同了。
sinkinglife 2005-06-11
  • 打赏
  • 举报
回复
aa

kk
wzjall 2005-06-11
  • 打赏
  • 举报
回复
一定是编译器的原因,输出应该是 aa kk 我的编译器输出也是 aa kk
tian_su 2005-06-11
  • 打赏
  • 举报
回复
我也是用VC6.0
运行结果是
aa
kk
llf_hust 2005-06-11
  • 打赏
  • 举报
回复
真的不明白为什么输出的是:
aa
kk
/* 要是输出的是
aa
kk
就是正确的 */#include <iostream.h>
class B{
public:
B(){cout<<"aa"<<endl;}
B(B &b){cout<<"kk"<<endl;}
};
void main(){
B b; // 调用 默认构造函数输出 aa
B c=b; // 调用拷贝构造函数输出 kk
}
joyhome 2005-06-11
  • 打赏
  • 举报
回复
我用的是VC
真的是编译器的问题?
真的不明白为什么输出的是:
aa
kk
zhousqy 2005-06-11
  • 打赏
  • 举报
回复
程序没有问题。
qhfu 2005-06-11
  • 打赏
  • 举报
回复
编译器的原因,我这的编译器输出是 aa kk
llf_hust 2005-06-11
  • 打赏
  • 举报
回复
可能是编译器的原因吧
我觉得也应该输出
aa
kk

64,682

社区成员

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

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