Porównywanie obiektów za pomocą operatora bool ==

Tak więc, po przeczytaniu kilku pytań i odpowiedzi SO, wciąż nie rozumiem, dlaczego używam

friend bool operator==( BaseClass const &left, BaseClass const &right )

zamiast

bool operator==( BaseClass const &right )

teraz mam coś takiegohttp://pastebin.com/pKsTabC0 (Naprawiony) - i wydaje się, że działa dobrze. Ale może coś mi brakuje? Jakieś sugestie?

Aktualizacja 1

Ok zmieniłem źródło, aby działało poprawniehttp://ideone.com/fIAmB. Usunięto niepotrzebne wirtualne i dodano const. Nadal nie rozumiem dlaczego używać przyjaciół ...

questionAnswers(4)

yourAnswerToTheQuestion