c++运算符重载后置++在屏幕上如何显示?结果为什么该加一,却没有显示出来,还是原数。在写一段前置++代码,屏幕上则显示原数字多加了2.
有代码如下:
c=a++;
cout<<c=a++,c=",c.display;
c=++a;
cout<<"c=++a,c=",c.display;
、、、、、、、、、、、、
a=(100,200),b=(10,20)
则显示结果如下:
c=a++,c=(100,200)
c=++a,c=(102,200)
重载运算符C++后置++在屏幕上的显示规则
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答
- ChatGPTᴼᴾᴱᴺᴬᴵ 2023-03-05 12:59关注
该回答引用ChatGPT
运算符重载后置++的作用是让对象的值加一,并返回修改前的对象值。当您在打印语句中使用后置++时,由于打印语句会在对象修改值之前执行,因此它会打印对象的旧值。
例如,在以下代码中:
int x = 5; cout << x++ << endl;
输出将为5,而不是6,因为后置++先返回x的旧值,然后将其加1。
对于前置++,它会先将对象的值加一,然后返回修改后的值。因此,在打印语句中使用前置++时,它将打印对象的新值。
因此,在您的代码中,对于以下行:
cout << c = a++, c = ",c.display;
由于c = a++是后置++,它将打印a的旧值,并且在打印之后将c设置为a的旧值。由于c.display语句是在c设置为旧值之后执行的,所以它打印的是a的旧值。
同样的,对于以下行:
cout << "c=++a,c=",c.display;
由于++a是前置++,它将先将a的值加1,然后返回修改后的值。因此,打印语句将打印a的新值,并将c设置为a的新值。
最后,对于以下行:
a=(100,200),b=(10,20);
这是使用逗号运算符初始化a和b的语法。逗号运算符按顺序计算其左右表达式,并返回最后一个表达式的值。因此,这个语句将a的值设置为200,b的值设置为20。
解决 无用评论 打赏 举报
悬赏问题
- ¥30 这是哪个作者做的宝宝起名网站
- ¥60 版本过低apk如何修改可以兼容新的安卓系统
- ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
- ¥50 有数据,怎么建立模型求影响全要素生产率的因素
- ¥50 有数据,怎么用matlab求全要素生产率
- ¥15 TI的insta-spin例程
- ¥15 完成下列问题完成下列问题
- ¥15 C#算法问题, 不知道怎么处理这个数据的转换
- ¥15 YoloV5 第三方库的版本对照问题
- ¥15 请完成下列相关问题!