Такой код: Код (Text): class COMPLEX{ public: double x,y; //... COMPLEX(TYPE Re,TYPE Im) { x=Re; y=Im; } COMPLEX operator*(COMPLEX z) { return COMPLEX(x*z.x-y*z.y,y*z.x+x*z.y); } COMPLEX operator*=(COMPLEX z) { return ((*this)*z); } Когда исполняется a*=z (вне определения класса), почему-то a не изменяется. В чём моя ошибка?
так ты его и не изменяешь. правильно: Код (Text): COMPLEX operator*=(COMPLEX z) { // Изменяем this (!) (*this) = (*this) * z; return (*this); } UPD: Да, кстати, я бы ссылочки (&) возвращал и принимал вместо самих объектов. типа COMPLEX & operator*=(COMPLEX &z)