蜕皮 2014-02-28 01:30 采纳率: 0%
浏览 854

重载运算符C++后置++在屏幕上的显示规则

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)

  • 写回答

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 请完成下列相关问题!