Чтобы лучше познакомиться с C ++, я реализую класс для управления комплексными числами.
class Complex {
private:
double _real;
double _imag;
public:
Complex();
Complex(double real, double imag);
Complex(const Complex& z);
Complex operator+(const Complex& u) const;
Complex operator+=(const Complex& u);
};
Я уже перегружен оператор +
, который работает, как и ожидалось:
Complex Complex::operator+(const Complex& u) const {
Complex z(_real + u._real, _imag + u._imag);
return z;
}
u=1-2i
v=2-1i
u+v=3-3i
Кроме того, я хотел также перегрузить +=
:
Complex Complex::operator+=(const Complex& u) {
Complex z(_real + u._real, _imag + u._imag);
return z;
}
Это, однако, не работает должным образом, и результат u+=v
равен u=1-2i
. Почему это так?