return *this <--- warum?
-
ich hab hier folgende Memberfunktion der Klasse Mitarbeiter
const Mitarbeiter& Mitarbeiter::aelter( const Mitarbeiter& mitarb ) const { if(this->getAlter() > mitarb.getAlter()) return *this; else return mitarb;
mir ist klar: die Funktion gibt eine Referenz zurück die constant ist
return mitarb;
ist klar, mitarb wurde als referenz übergeben und wird weitergereicht
return *this;
da liegt mein Problem...warum derefenzieren?
-
Weil die Referenz vom Typ Mitarbeiter ist und kein Zeiger auf einen Mitarbeiter,
daher muss dereferenziert werden, damit die Referenz auf das Objekt vom Typ
Mitarbeiter verweisen kann.
-
Weil this ein Zeiger auf das aktuelle Objekt ist, also vom Typ Mitarbeiter *
Du willst aber ein const Mitarbeiter & zurückgeben, folglich musst du den Zeiger erst dereferenzieren!
-
aha...hier noch ne kleine Frage fürs Verständnis:
int var; int *z; z = &var; //z zeigt auf var int &refVonVar = var; //ist das das gleiche wie? --> int &refVonVar = *z;
-
ja