Eigenes dynamisches Array - Operatorüberladung...
-
Hi ho,
also ich habe folgendes Problem. Ich möchte mein eigenes dynamisches Array schreiben, doch ich habe da das eine oder andere Problem mit der Operatorüberladung.
Jetzt sollen folgende Operationen möglich sein:
class dynamic_array; //... int main() { dynamic_array l_test; l_test.push_back(3); l_test.push_back(2); cout << l_test[0] << l_test[1] << endl; // gibt "32" aus - kein Problem l_test[0] = 12; // wie überlade ich = und [] operator das diese Zuweisung klappt? return 0; }Die Frage steht ja oben. Eigentlich müsste der [] Operator eine Referenz zurück geben, damit ich im = Operator weiß wohin man was speichert. Nur dann das klappt nicht, abgesehen davon das dann das cout drüber nicht mehr funktionieren würde!
Und bitte jetzt nicht sagen "benutz doch den Vector aus der STL"...
Schonmal vielen Dank im voraus!
-Tobi
-
Hallo
Dazu hat Scott Meyers eine netten Artikel in seinem Buch Effektiv C++ geschrieben. Vielleicht hast du das ja zur Hand. Wenn nicht, wird dir bestimmt auch geholfen.
chrische
-
Nein, leider hab ich das Buch nicht zur Hand. Aber schonmal gut zu wissen das es eine Lösung gibt

-
So?
T& operator[] (size_t index);
T const& operator[] (size_t index) const;
-
Tobias W schrieb:
Die Frage steht ja oben. Eigentlich müsste der [] Operator eine Referenz zurück geben, damit ich im = Operator weiß wohin man was speichert. Nur dann das klappt nicht, abgesehen davon das dann das cout drüber nicht mehr funktionieren würde!
Wieso? Ich sehe dein Problem nicht. std::vector gib auch eine Referenz mit der Ausnahme von std::vector<bool> zurück.
-
Ok, mal abgesehen von meinem schlimmen Deutsch ("nur dann das klappt nicht" ; ) verstehe ich mein Problem auch nicht mehr...
Klar, mit Referenz funktioniert das problemlos.
Danke nochmal.