Indexoperator [] überladen
lima-city → Forum → Programmiersprachen → C/C++ und D
alte feld
ansatz
array
code
dank
entsprechende stelle
falle
feld
hilfe
index
klar danke
lehrer
operator
pointer
position
referenz
vorgabe
wert zugreifen
zuweisung
zweck
-
Morgen...
Ich steh gerade vor einem riesigen (Verständnis-)Problem...
Ich habe eine Klasse, welche ein Array verwaltet. Initialisiert wird diese Klasse mit:
Array<int> intValues(10);
In der Klasse wird damit ein Feld der Länge 10 angelegt.
Wenn man nun
intValues[15] = 6;
aufruft, soll ein neues Feld mit Länge 15 angelegt, die Werte vom alten Feld kopiert und das alte Feld gelöscht werden.
Zu diesem Zwecke muss ich den Operator [] überladen.
Ich habe in der Klasse schon diesen Ansatz implementiert:
template <class T> T Array<T>::operator[] (int position){ m_pData[position]; }
m_pData ist ein Pointer auf das Feld mit den Werten. Das ganze ist mit Templates implementiert (Vorgabe vom Lehrer...)
Aber jetzt weiß ich nicht, wie ich auf die entsprechenden Werte für den Index und für den Wert zugreifen kann...
Ich meine, der Wert, der in der eckigen Klammer steht, ist für den Index, dass iss mir klar, aber wie bekomm ich jetzt den Wert, der an die entsprechende Stelle im Feld geschrieben werden soll?
Danke für euer (zukünftiges) Bemühen...
lg
schrotti12
Beitrag geändert: 16.6.2008 13:04:13 von schrotti12 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Ich meine, der Wert, der in der eckigen Klammer steht, ist für den Index, dass iss mir klar, aber wie bekomm ich jetzt den Wert, der an die entsprechende Stelle im Feld geschrieben werden soll?
Gar nicht, deine überladene Operatorfunktion sollte eine Referenz auf \"richtige\" Listenelement zurückgeben und die Zuweisung (z.B. \"=6\") erfolgt dann quasi von selbst.
Also ca. so:int& MyClass::operator[](int index) { return MyArray[index]; }
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage