Vergleichen von Objekten mit dem bool-Operator ==

Nachdem ich einige SO Fragen und Antworten gelesen habe, verstehe ich immer noch nicht warum

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

anstatt

bool operator==( BaseClass const &right )

im Moment habe ich so etwashttp://pastebin.com/pKsTabC0 (Fest) - und es scheint gut zu funktionieren. Aber vielleicht fehle ich etwas? Irgendwelche Vorschläge?

Update 1

Ok, ich habe die Quelle geändert, damit es richtig funktionierthttp://ideone.com/fIAmB. Unnötige virtuelle und hinzugefügte const entfernt. Trotzdem verstehe ich nicht, warum ich Freunde benutzen soll ...

Antworten auf die Frage(4)

Ihre Antwort auf die Frage