Programmieren - alles kontrollieren 4.934 Themen, 20.613 Beiträge

operator= in C++???

(Anonym) / 3 Antworten / Flachansicht Nickles

Warum gibt der operator= eine Referenz zurück und nicht den eigentlichen Wert? Ich versteh das nicht so ganz!

bei Antwort benachrichtigen
Ben Horne (Anonym) „Ja aber ich kann doch selber einen operator deklarieren, der void zurück gibt...“
Optionen

Deswegen bleibt aber trotzdem die Rechtsassoziativität bestehen!
Eine Zuweisung '=' ist rechtsassosiativ weil der operator= etwas liefern muß, was selber auf der rechten Seite einer Zuweisung stehen darf!

Sonst würde ja auch keine Verkettung funktionieren:
void Verkettung( int wert1, int wert2, int wert3, int wert4)
{
   wert1 = wert2 = wert3 = wert4;
}

Der Compiler macht daraus mathematisch gesehen folgendes:
wert1 = ( wert2 = ( wert3 = wert4 ) )

Wie Klammern aufgelöst werden, solltest du ja in der Schule gelernt haben :-)

bei Antwort benachrichtigen