#include "iostream"
using namespace std;
class xx
{
public:
int x;
void operator ++() { x*x; } //这里不起作用,输出结果还是10.。如果换成 ++X 就会输出11,就正确。这是为什么
};
void main()
{
xx i;
i.x =10;
++i;
cout<<i.x<<endl;
}
#include "iostream"
using namespace std;
class xx
{
public:
int x;
void operator ++() { x*x; } //这里不起作用,输出结果还是10.。如果换成 ++X 就会输出11,就正确。这是为什么
};
void main()
{
xx i;
i.x =10;
++i;
cout<<i.x<<endl;
}
void operator ++() { x*x; }
跟刚才一样的原因.
x*x并没有改变x的值. 只是做了个乘法而已.他的结果没有赋值给任何变量. 也就没有任何副作用.
而++x是将x自增1. 等于x=x+1; 他的结果有赋值给x. 所以值会被改变!