Ich habe Probleme mit dem Unterschied zwischen Get und für den Operator []. Ich muss den Unterschied zwischen diesen Funktionsaufrufen unterscheiden.Operator [] C++ Holen/Setzen
cout << data[5];
data[5] = 1;
Ich googeln es, und die Antworten, die ich immer noch nicht helfen gefunden. Die Leute schlugen vor, die Signaturen für die Methoden anders zu machen, indem sie const hinzufügen. Ich tat das, und sie riefen immer noch die gleiche Methode an.
Es sind die Unterschriften ich benutzt hatte:
const T& operator[](unsigned int index) const;
T& operator[](unsigned int index);
Was mache ich falsch?
Vielleicht möchten Sie * Proxy-Objekte sehen *, die oft von Schreiben liest, zu unterscheiden, verwendet. – templatetypedef
Siehe Punkt 30 "Proxy-Klassen" aus [Effektiver C++ von Scott Meyers] (http://www.amazon.com/More-Effective-Improve-Programs-ebook/dp/B004VSMDNY/ref=la_B004BBEYYW_1_2?s=books&ie= UTF8 & qid = 1381129998 & sr = 1-2) für eine ausführliche Diskussion zu diesem Thema, einschließlich überraschender Fallstricke (im Zusammenhang mit benutzerdefinierten Conversions), die Proxy-Klassen Ihnen geben können. Dieses Material ist [Pflichtlektüre] (http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list). – TemplateRex