2D Array-Klasse Rückgabe einer Referenz bei Zuweisung
-
Die Überladung kommt erst in späteren Kapiteln, weshalb dies hier noch verboten ist.
Das heißt doch eigentlich, dass bei jedem Aufruf der Funktion die Referenz auch zurückgegeben wird oder? Entspricht das nicht auch einfach die Adresse der Instanz?
-
was ist das denn für ein buch ? erst werden klassen erklärt und später erst das überladen funktionen ? dieses konzept erschließt sich mir nicht so ganz.
-
vario-500 schrieb:
was ist das denn für ein buch ? erst werden klassen erklärt und später erst das überladen funktionen ? dieses konzept erschließt sich mir nicht so ganz.
Es geht um Operatorenüberladung. Da ist diese Reihenfolge schon korrekt :xmas1:
-
Edit: Hier stand Müll (s. u.)
-
Ich meine von *this
-
Ouh, ich war verwirrt, dachte das ist der andere Thread
Sry!RaggyGandalf schrieb:
Das heißt doch eigentlich, dass bei jedem Aufruf der Funktion die Referenz auch zurückgegeben wird oder? Entspricht das nicht auch einfach die Adresse der Instanz?
Ich verstehe nicht so richtig, was du meinst.
-
Wenn ich eine Methode mit dem Rückgabetyp
Array2D& <name>(parameter)
habe, übergibt sie nicht einfach beim Aufruf die Adresse? In diesem Fall übergibtassign
doch einfach die Adresse vonthis
oder nicht?
-
RaggyGandalf schrieb:
Wenn ich eine Methode mit dem Rückgabetyp
Array2D& <name>(parameter)
habe, übergibt sie nicht einfach beim Aufruf die Adresse? In diesem Fall übergibtassign
doch einfach die Adresse vonthis
oder nicht?Adresse von this wäre ja ein
Array2D**
...
Mit Adressen hat das erstmal nix zu tun, es sei denn, Du willst Dich über die Implementierung des Standards in Deinem Compiler unterhalten...Naja und warum eine Referenz zurückgegeben wird?
Damit du schreiben kannstArray2D a,b,c; a.assign(b.assign(c));
bzw. später, wenn Du aus
assign()
wirklich den Zuweisungsoperatoroperator=()
machst:Array2D a,b,c; a = b = c; // == a.operator=(b.operator=(c))
Natürlich musst Du keine Referenz retournieren, ist aber allgemeine Praxis.
-
Okay, das wurde so direkt nicht im Buch beschrieben. Ich hab es jetzt jedenfalls ausprobiert und verstanden. Danke :xmas1:
-
Hallo,
ich bin bei www.github.com/decimad/na_containers auch gerade dabei, eine array2d-Klasse zu implementieren. Vielleicht sollten wir kollaborieren?Grüße,
Deci :xmas1: