为了账号安全,请及时绑定邮箱和手机立即绑定

里面的运行结果是13A23B,请问:哪来的3?

里面的运行结果是13A23B,请问:哪来的3?

拉莫斯之舞 2022-06-02 13:09:03
#include<iostream.h>class Con{char ID;public:char getID(){return ID;}Con(){ID='A';cout<<1;}Con(char id){ID=id;cout<<2;}Con(Con& c){ID=c.getID();cout<<3;}};void show(Con c){cout<<c.getID();}void main(){Con c1;show(c1);Con c2('B');show(c2);}运行结果是13A23B问:哪来的3啊
查看完整描述

3 回答

?
catspeake

TA贡献1111条经验 获得超0个赞

3是在调用show(c1)和show(c2)函数的时候输出的
参数传递的时候要调用类的复制构造函数
就是这个
Con(Con& c)
{
ID=c.getID();
cout<<3;
}

查看完整回答
反对 回复 2022-06-06
?
炎炎设计

TA贡献1808条经验 获得超4个赞

Con(Con& c)
{
ID=c.getID();
cout<<3;
}

查看完整回答
反对 回复 2022-06-06
?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

调用了你定义的拷贝构造函数,这是因为你的show()函数是传值调用。看样子你是想输出1A2B,那么将show()函数改为show(Con &c),其余不变。

查看完整回答
反对 回复 2022-06-06
  • 3 回答
  • 0 关注
  • 85 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信