Ich schreibe eine Sammelklasse. Ich möchte den eckigen Klammeroperator ([]) überladen, um Zugriff auf Elemente in der Sammlung zu gewähren.Platzhalter überladen, um den Wert zu übernehmen
int operator[](int i)
{
// Do stuff here
}
Mein Problem ist, dass ich sehe nicht, wie dies zu schreiben, so dass ich diesen Bediener einen Wert zu übernehmen verwenden:
myClassInstance[0] = value;
ich keine Möglichkeit sehen, den eckigen Klammern Betreiber zu erklären ein zusätzliches Argument (der Wert, der dem Element zugewiesen werden soll).
Ich weiß, ich kann einfach int & zurückgeben, und der Aufrufer kann einen Wert zuweisen, aber intern wird jedes Element in einem anderen Format gespeichert als das, das veröffentlicht wurde.
Ist das überhaupt möglich?
Sie benötigen zwei Operator [] (int) Versionen. eine const-Version und die nicht-const-Version, nach der Sie gefragt haben. Die ursprüngliche Version sollte const dahinter haben, um ein const-Objekt aufzurufen; –
@ Edwin: Ich habe Ihren anderen Kommentar gesehen. Ich werde es versuchen. Vielen Dank. –