Przeciążenie operatorów co robię źle

0

Witam mam napisać klasę która będzie realizować obliczenia na liczbach zespolonych.


class complex{
	

	public:
		int r,u;
		complex (int x=0, int y=0)
		{
			r=x;
			u=y;
		}



}; 

Tak aktualnie wygląda klasa.
W mainie realizuje wczytanie dwóch liczb zespolonych kolejno są to liczba1 oraz liczba2.
analogicznie

cout << "Podaj wartosc czesci rzeczywistej pierwszej liczby: ";
	cin >> r;
	cout << "Podaj wartosc czesci urojonej pierwszej liczby: ";
	cin >> u;
	complex liczba1(r,u); 

Chciałbym aby liczba3 była wynikiem przeprowadzonych działań. I tu zaczynają się schody moje przeładowanie + wygląda tak

complex operator+(const complex &liczba1,const complex &liczba2)
		{
			return complex(liczba1.r+liczba2.r, liczba1.u+liczba2.u);
		} 

później liczba3=liczba1+liczba2
no i wynik nie jest prawidłowy. Co robię nie tak? Zaznaczę że to moje pierwsze starcie z przeładowaniem operatorów. Proszę o pokierowanie mnie w dobrą stronę. Przyznam że nie interesują mnie wypowiedzi w stylu w sieci masz miliony kodów do programów realizujących ten problem, chce wiedzieć co konkretnie robię źle. Chyba tak czegoś się nauczę :)
Z góry dziękuje za pomoc!

0

To co tu napisałeś jest poprawne. Więc albo wynik jest poprawny albo błąd jest w innym miejscu niż podejrzewasz.

0

Ok wystarczyło na chwilę odejść od komputera na świeże powietrze a błąd od razu znalazłem :) Przez pośpiech w końcowym cout dałem liczba2 zamiast 3.

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