Klasse Matrix - operator[] überladen
-
Hallo,
ich habe mir eine Klasse MAtrix angelegt.
Die Werte werden bei mir in einem zwei dimensionalem Feld gespeichert:double** m_ppMatrix
Ich habe den Operator [] überladen, dass ich jeden Wert rauskriegen kann:
double* CMatrix::operator[](int nRow) { return m_ppMatrix[nRow]; }
Jetzt aber zu meiner Frage. Wie kann ich jetzt den Operator[] überladen, dass ich beliebigen Element den Wert setzen kann. Z.B.:
Matrix myMatrix(3, 3); myMatrix[0][1] = 55;
Bin für jeden Vorschlag dankbar.
Gruß
Marius
-
FAQ
-
-
Sorry, aber der Beitrag hilft mir nicht weiter.
-
Ist das zweite Beispiel im genannten Thread nicht genau das was du suchst?
-
double* CMatrix::operator[](int nRow) const { return m_ppMatrix[nRow]; }
Das auch noch, und dann sollte ein Zugriff auf jedes Element der Matrix möglich sein.
-
@link
Danke für deine Hilfe, aber das zweite Beispiel ist schon eigentlich das was ich habe.@Charles Miller
Hatte ich auch gedacht. Aber funktioniert nicht. Siehe Code-Ausschnitt:// Erzeugt eine 3 x 3 Matrix mit Nullen gefüllt Matrix myMatrix(3, 3, 0); double testValue; myMatrix[1][1] = 2; testValue = myMatrix[1][1];
Jetzt hat die Variable testValue den Wert 0. Warum?
-
Volkard hat neulich eine schöne Möglichkeit mit einer Proxklasse gepostet bei der man den Speicher auch eindimensional halten kann. Such mal im Forum.
-
Die Suchfunktion klappt im Moment nicht vernünftig!
-