#include "iostream"
using namespace std;
class xx
{
public:
int x;
xx operator ++(int){xx temp(*this); x*x; return temp;}
};
void main()
{
xx i;
i.x =10;
xx u=i++;
cout<<u.x<<endl;
}
输出还是 10
#include "iostream"
using namespace std;
class xx
{
public:
int x;
xx operator ++(int){xx temp(*this); x*x; return temp;}
};
void main()
{
xx i;
i.x =10;
xx u=i++;
cout<<u.x<<endl;
}
输出还是 10
xx operator ++(int){xx temp(*this); x*x; return temp;}
你的运算符重载函数中. 返回的是temp. 但是对temp只是用this指针进行构造.并没有改变this原来的值.当然输出还是10; 应该将x*x的结果赋值给temp.x. 这样才能体现出来.
xx operator ++(int){xx temp(*this); temp.x=x*x; return temp;}