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)
该回答引用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。