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 = AusgabestringGrid

    Hier 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 ?


Anmelden zum Antworten