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

为什么前面的加了,后面的没加呢?(运算符重载)

cout << (coor1++).getX() << "," << (coor1++).getY() << endl;


正在回答

2 回答

但是我运行出来的是(x0+1,y0).

0 回复 有任何疑惑可以回复我~
#1

jingxue

你的解决了吗?我用的VS也是
2016-10-06 回复 有任何疑惑可以回复我~
#2

慕粉baby 回复 jingxue

按照老师写的格式,没有问题,看下这个博客吧! http://blog.csdn.net/zhanghenglei/article/details/7320291
2017-06-20 回复 有任何疑惑可以回复我~

设初始坐标x0,y0

第一个(coor1++)先执行,根据函数定义,返回的是执行++前的值old:x0,并非+1后的值x0+1,所以第一个输出x0,虽然此时的实际xy坐标已变成x0+1,y0+1。

同理,在执行第二个++时,虽然实际xy坐标再次+1,变为x0+2,y0+2,但返回的仍然是执行前的值y0+1,因此,最终有了输出结果:x0,y0+1。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之模板篇
  • 参与学习       91156    人
  • 解答问题       318    个

本C++教程力求即学即会,所有知识以实践方式讲解到操作层面

进入课程

为什么前面的加了,后面的没加呢?(运算符重载)

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信