operator=
-
_narf _narf::operator=(const halde& in) { this->x = in.i; this->y = in.j; return *this; }
-
Danke
-
Quiz: Wo besteht bei dem operator= von eVilissimo die Möglichkeit, eine Kopie des Objekts zu sparen?
-
kingruedi schrieb:
Quiz: Wo besteht bei dem operator= von eVilissimo die Möglichkeit, eine Kopie des Objekts zu sparen?
Man liefert einfach keinen Wert zurück, oder?
void _narf::operator=(const halde& in) { this->x = in.i; this->y = in.j; }
gruß,
walker
-
eViLiSSiMo schrieb:
_narf _narf::operator=(const halde& in) { this->x = in.i; this->y = in.j; return *this; }
wozu ist da eigentlich die Referenz da? nur um die Kopie zu sparen oder wofür?
und:
a=b=c; funktioniert damit nicht.
Die Funktion muss dann nochmal ne Referenz zurückgeben.
-
huh?
Warum sollte a=b=c damit nicht funktionieren?_narf _narf::op..
..
return *this;erzeugt ne kopie. ein temporäres objekt das dann a zugewiesen wird.
Genau so wie es sein sollte.
-
wozu ist da eigentlich die Referenz da? nur um die Kopie zu sparen oder wofür?
um unnötige Konstruktor und Destruktor Aufrufe zu sparen.
-
@defod muss danicht ne Referenz zurückgegeben werden? Hm, wieder was gelernt.
-
Online schrieb:
eViLiSSiMo schrieb:
_narf _narf::operator=(const halde& in) { this->x = in.i; this->y = in.j; return *this; }
wozu ist da eigentlich die Referenz da? nur um die Kopie zu sparen oder wofür?
und:
a=b=c; funktioniert damit nicht.
Wiso denn? Was fuer einen Typ haben die Variablen?
a.operator=(b.operator=(c));
Online schrieb:
Die Funktion muss dann nochmal ne Referenz zurückgeben.
Nur um eine Kopie zu erspren.
-
alles klar...mein fehler