class compl{
float re,im;
public:
compl(float r, float i)
{re=r; im=i;}
compl& operator++()
{++re; return*this;} //(1)
compl operator++(int k){
compl z=*this; re++; im+=k; return z;} //(2)
friend compl& operator--(compl& z)
{--z.re; return z;}
friend compl operator--(compl& z,int k)
{compl x=z; z.re--; z.im-=k; return x;}
};
(1) なぜ参照によって現在のオブジェクトを返さなければならないのですか? 私が理解したように、参照は何かの単なる 2 番目の名前です。
(2) 現在のオブジェクトを z に保存してから、オブジェクトを変更し、変更されていない z を返す必要があるのはなぜですか? これを行うと、増加されていない値が返されます。後置演算子の仕組みのせいですか(古い値を返し、それを増やします)