代码实现一个Point类对象x,y坐标自加1的“++”符号重载功能。
请问主函数中第二行和四行对点坐标输出的结果为什么是这样的呢?
第二行的输出结果为什么不是(1,3)?第四行为什么不是(4,5)?
刚刚学习C++,希望得到帮助,谢谢。
首先,对于流,是从前往后执行的,因此后面的先求值
比如 a(b(c(1))),那么先需要计算c(1)然后才能作为参数,计算b(c(1)),最后才是a(b(c(1)))。
其次++p是输出之前的值,再++,而++p则是相反。你的重载遵循了这个规则,上面那个是++p,后面的是p++
因此第一个输出1 2
然后输出p加以前的x和以前的y就是1 2
因为都+1了,所以输出2 3
从此刻算,之后输出加1次以后的y和加2次以后的x,所以输出 4 4
最后输出加2次以后的x y就是4 5