C++ - Klassen: Vertiefung
Pointer und Referenzen:
Argumente, Returnwerte und Empfehlungen
Empfehlungen zu den Returnwerten:
- Soll das Resultat der aufgerufenen Funktion nicht als lvalue
verwendet werden (OUT-Returnwert) und ist der Returnwert von eingebautem
Typ, dann sollte er per Value geliefert werden.
Beispiel: integrale Returnwerte
- Ist der OUT-Returnwert von selbstdefiniertem Typ und hat er eine
Lebensdauer über das Ende der aufgerufenen Funktion hinaus, dann sollte er per
Reference to const (const typename&) von dieser geliefert werden.
Beispiel: Operatoren und Referenzen auf das eigene Objekt
return *this;
- Lebt das Objekt des Returnwertes nur bis zum Ende der aufgerufenen
Funktion, muß der Returnwert von dieser per Value geliefert werden
(Aufruf Kopier-Konstruktor für deep copy!).
- Soll die Funktion in verketteten Zusammenhängen verwendet werden
(z.B. Operatoren), und verwendet die nachfolgend aufzurufende Funktion in der
Kette das von der betrachteten aufgerufenen Funktion returnierte Objekt als
INOUT-Argument, so muß dieses per Reference (typename&) geliefert werden.
Hier wieder die Lebensdauer des Objektes beachten!
- Soll das Resultat der aufgerufene Funktion als lvalue verwendet
werden (INOUT-Returnwert), so muß dieses ebenfalls per Reference
(typename&) geliefert werden.