Ich bin durch das folgende Beispiel verwirrt:Verwirrt über Rückkehr von Referenz
class complex {
double re, im;
public:
complex(double r, double i) : re{r}, im{I}()
complex& operator+= (const complex&z) { re += z.re; im += z.im; return *this; }
};
Ich verstehe nicht, warum der Rückgabetyp vom operator +=
durch Referenz, da re
und im
werden immer aktualisiert. Ich verstehe auch nicht, warum *this
enthalten ist.
Ich verstehe nicht, warum Sie denken, dass "re" und "im", die aktualisiert werden, etwas mit dem Rückgabetyp zu tun haben. 'return * this;' gibt es, weil '* this' das Objekt ist, auf das die Funktion eine Referenz zurückliefert. – molbdnilo