Überladen von Multiplikation mit mehrdimensionalen dynamischen Arrays
-
class Simple2DimArr { private: int* pArr; int Rows, Cols; public: Simple2DimArr(int Zeilen, int Spalten) { Rows = Zeilen; Cols = Spalten; // 2-Dimensionales Array auf 1-Dimensionales abbilden pArr = new int[Rows * Cols]; } int* operator[](int Zeile) { // Array liegt "zeilenweise" im Speicher return & pArr[Zeile * Cols]; } ~Simple2DimArr() { delete [] pArr; } }; int main() { Simple2DimArr Arr(2,3); Arr[0][0] = 42; }Guten Abend!
Ich wollte auf Basis der oben stehenden Klasse den Multiplikations-Operator überladen. Leider komme ich zu keinem Ergebnis und brauche dringend Hilfe!!
Das soll in etwa so aussehen:Simple2DimArr A(3,3); Simple2DimArr B(3,3); A[1][1] = 42; B[1][1] = 2; A[1][1]*B[1][1];Wobei der *-Operator in der Klasse Simple2DimArr überladen werden soll durch einen eigenen Multiplikations-Operator. Ich weiß, komische Aufgabe, aber mein Prof will das so haben...
-
Du musst eine Proxyklasse beim operator[] zurückgeben, die dann wiederum den operator[] implementiert.
Ein Beispiel dazu findest du hierEDIT: Das hier ist auch noch ein sehr gutes Beispiel dafür!
-
Danke für die Mühe, aber ich bin jetzt über dieses Link: http://www.acims.arizona.edu/PUBLICATIONS/PDF/RajnikanthTemplates04.pdf
zum Ergebnis gekommen!!