Przerabiam właśnie przeładowanie operatorów z Symfonii C++
Pokażę może na przykładzie o co się rozchodzi. Mianowicie jest podana funkcja imitująca dodawanie liczb zespolonych:
zespol dodaj (zespol a, zespol b)
{
zespol suma(0,0);
suma.rzeczyw = a.rzeczyw + b.rzeczyw;
suma.urojon = a.urojon + b.urojon;
return suma;
}
Teraz z tej funkcji jest wykonany operator + aby łatwiej można to było dodawać. W książce taki operator wygląda tak:
zespol operator+(zespol a, zespol b)
{
zespol suma ;
suma.rzeczyw = a.rzeczyw + b.rzeczyw;
suma.urojon = a.urojon + b.urojon;
return suma;
}
I teraz pytanie - dlaczego przy zespol suma ; nie ma już inicjalizacji za pomocą zer (0,0); Przecież sumę zawszę się zeruje, aby nie było tam śmieci ?