#include <iostream.h>
class A{
public:
A(int x=0,int y=0,int z=0)
{ a=x;b=y;c=z;
}
void disp()
{ cout<<a<<" "<<b<<" "<<c<<endl;
}
A operator++()
{ ++a;//a++;
++b;//b++;
++c;//c++;
return *this;
}
A operator++(int)
{ A temp(*this);//注意这里不可以写成{ a++;b++;c++;
a++;b++;c++;//++a,++b,++c; return *this; }
return temp;
}
private:
int a,b,c;
};
int main()
{ A A1(5,6,7),A2;
A1.disp();
A1++;
A1.disp();
A2=A1++;
A1.disp();
A2.disp();
return 0;
}
“使用后自增运算符时,必须在增量之前返回原有的对象值。为此,需要创建一个临时对象存放原有的对象,以便对操作数进行增量修改时,保存最初的值。
//后自增运算符操作时返回的是临时对象的值,不是原有对象,原有对象已经被增量修改,所以返回的应该是存放原有对象值的临时对象”