Zuweisungsoperator überladen
-
Hier eine Beispielklasse
class test { public: int& operator [] (int index) { return data[index]; } int data [5] = {1,2,3,4,5}; };
Wenn ich jetzt so etwas schreibe wie
test t; t[0] = 6;
dann gibt mir
t[0] den Wert 1 zurück und man hätte am Ende den Ausdruck 0 = 6 oder?Ich wurde das gefragt und bin jetzt selbst verwirrt.
Kann jemand vielleicht Klarheit verschaffen?
-
man hätte am Ende den Ausdruck 0 = 6 oder?
Warum?
-
Ich meinte 1 = 6 und nicht 0 = 6. Mein Fehler
-
t[0]
gibt nicht1
zurück, sondern eine Referenz auft.data[0]
. Über diese kann man diesem Feld dann einen beliebigen Wert, z.B.6
, zuweisen.
-
Macht Sinn. Danke ; )
-
Und Du hast natürlich nicht den Zuweisungoperator überladen, das wäre
operator=
gewesen.