VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 184|回复: 2

[已解决]函数和类问题

[复制链接]
01_avatar_middle
最佳答案
0 
在线会员 发表于 2020-2-11 14:37:59 | 显示全部楼层 |阅读模式
在main中第三步之前都知道,但是为什么进入PrintAndDouble函数后b.v的值会变成9 求大神解答谢谢
最佳答案
50_avatar_small
2020-2-12 19:05:22
  1. Sample Print_v(Sample o)//Sample o=b;//拷贝构造一次
  2. {
  3.         cout << "o.v=" << o.v << endl;
  4.         o.v = 2 * o.v;
  5.         cout << "o.v=" << o.v << endl;
  6.         return o;

  7. }
  8. int main()
  9. {
  10.         Sample a(5);
  11.         Sample b = a;//拷贝构造一次
  12.         Sample c = Print_v(b);//Sample c=o;//拷贝构造一次
  13.         cout <<"b.v="<< b.v << endl;
  14.         cout << "c.v=" << c.v << endl;
  15.         return 0;
  16. }
复制代码

结果:
o.v=9
o.v=18
b.v=7
c.v=20

结果

结果

码




上一篇:求助能不能单独装VC而不装VS
下一篇:关于程序内存泄漏
82_avatar_middle
最佳答案
14 
在线会员 发表于 2020-2-11 18:48:42 | 显示全部楼层
这块我的理解是 PrintAndDouble 函数中因为参数 Sample o 是普通的变量,不是引用,所以会默认生成一个临时对象,通过对象 b 生成临时对象 o 的过程中会调用 Sample 的构造函数 Sample(Sample& x),所以就是 7 + 2 就是9了,我个人是这么理解的!

另外,b 对象的 v 还是 7,不是 9,PrintAndDouble 返回的对象的 v 才是 9,楼主不妨调试下看到值就明白了

评分

参与人数 1驿站币 +1 热心值 +1 收起 理由
01_avatar_small alexls + 1 + 1 很给力!

查看全部评分

50_avatar_middle
最佳答案
1 
在线会员 发表于 2020-2-12 19:05:22 | 显示全部楼层    本楼为最佳答案   
bestAnswer
  1. Sample Print_v(Sample o)//Sample o=b;//拷贝构造一次
  2. {
  3.         cout << "o.v=" << o.v << endl;
  4.         o.v = 2 * o.v;
  5.         cout << "o.v=" << o.v << endl;
  6.         return o;

  7. }
  8. int main()
  9. {
  10.         Sample a(5);
  11.         Sample b = a;//拷贝构造一次
  12.         Sample c = Print_v(b);//Sample c=o;//拷贝构造一次
  13.         cout <<"b.v="<< b.v << endl;
  14.         cout << "c.v=" << c.v << endl;
  15.         return 0;
  16. }
复制代码

结果:
o.v=9
o.v=18
b.v=7
c.v=20

评分

参与人数 1驿站币 +1 热心值 +1 收起 理由
01_avatar_small alexls + 1 + 1 很给力!

查看全部评分

您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号 )|网站地图wx_jqr

GMT+8, 2020-10-26 03:56

Powered by CcTry.CoM

© 2009-2020 cctry.com

快速回复 返回顶部 返回列表