Przeciążanie operatorów - potrzebny przykład definicji np. operatora '+'

0

Witam mam do napisania taki oto program:

Zdefiniuj klasę LZesp reprezentującą liczbę zespoloną. Klasa powinna posiadać pola prywatne re -
część rzeczywista i im – część urojona oraz konstruktor ustawiający pola klasy na podstawie parametrów,
domyślnie wartości 0. Dla klasy należy przeciążyć następujące operatory:

  • operatory: +, -, *, /;
  • operator pobierania/wstawiania ze/do strumienia wejściowego/wyjściowego >>, <<,
  • operatory: +=, -=, *=, /=;
  • operatory: <, >, = =;
    Napisz program ilustrujący działanie zaimplementowanej klasy i metod.

W sumie wydawałby się banalny gdyby nie to przeciążanie operatorów.. Mógłby Ktoś podać jakaś przykładową definicję np operatora +? Zapewne reszta jest analogiczna i bym sobie z nimi dalej poradził..

1
complex complex::operator+(const complex &c)const { return complex(re+c.re,im+c.im); }
3

Powinieneś przeładować operator+ w kontekście operatora+=

czyli

Klasa
{
    Klasa& operator+=(Klasa const& rhs)
    {
    // ...
    return *this;
    }
}

i operator+ poza klasą, ale w tej samej przestrzeni nazw:

Klasa operator+(Klasa lhs, Klasa const& rhs)
{
    return lhs += rhs;
}

Lektura: http://en.cppreference.com/w/cpp/language/operators

1 użytkowników online, w tym zalogowanych: 0, gości: 1