Operator + überladen ?
-
Hi Leute
Habe folgende Klasse geschrieben, die Werte eines StringGrids in einen valarray einliest.(sog. Matrizen) Jetzt will ich 2 dieser Matrizen addieren.
additionF = das Hauptfenster
matrix1S = StringGrid 1 das eingelesen werden soll
matrix2S = StringGrid 2 das eingelesen werden soll
matrixAS = AusgabestringGridHier mein Code:
#include "matrix.h" #include "additionU.h" #include <valarray> using namespace std; matrix::matrix(int a,int z,int s) : v(z*s),u(z*s)//Konstruktor für MN-Matrix { zeilen = z; spalten = s; if (a==1)//unterscheidet ob StringGrid1 eingelesen wird { int m=0; for (int i=0;i<s;i++) for (int j=0;j<z;j++) { if (m<z*s) { m++; v[m-1]=StrToFloat(additionF->matrix1S->Cells[i][j]); }; } } else if(a==2)//oder StringGrid 2 ! { int m=0; for (int i=0;i<s;i++) for (int j=0;j<z;j++) { if (m<z*s) { m++; u[m-1]=StrToFloat(additionF->matrix2S->Cells[i][j]); }; } } }; matrix::matrix(valarray<double> h)//Konstruktor für die Übergabe an v { w = h; } matrix operator+(matrix& m,matrix& n)//Addition der zwei Matrizen { valarray<double> h = m.v + n.u; return matrix(h) }; void matrix::ausgabe() { int m=0; for (int i=0;i<spalten;i++) for (int j=0;j<zeilen;j++) { if (m<zeilen*spalten) { m++; additionF->matrixAS->Cells[i][j]=FloatToStr(w[m-1]); }; } };
Die Fehlermeldung kommt in dieser Zeile :
*__result = *__first;
der Datei :
_algobase.h
Wisst ihr da Rat ?