1

Тема: додавання двох матриць

привіт) намагаюсь додати дві матриці,але нічого не виходить і це все є в класі.Поможіть будь ласка
matrix.h

#include"stdafx.h"
#include"iostream"
class matrix
{
private:
int n,m;
int**matriza;
public:
matrix();
matrix(int** mat,int rad,int stovp);
matrix(const matrix& mat);
~matrix();
void input();
void output();
};


matrix.cpp

#include"stdafx.h"
#include"matrix.h"
using namespace std;




matrix::matrix()
{
n=0;m=0;
matriza=new int*[n];
for(int i=0;i<n;++i)
{
matriza[i]=new int[m];
}
for(int i=0;i<n;++i)
for(int j=0;j<m;++j)
{
matriza[i][j]=0;
}
};



matrix::~matrix()
{
cout<<"empty list";
};



void matrix::input()
{
first: cout<<"Enter n=";
cin>>n;
if(n<0) goto first;
secondary: cout<<"Enter m=";
cin>>m;
if(m<0)goto secondary;
matriza= new int*[n];
for(int i=0;i<n;++i)
{
matriza[i]=new int[m];
}
for(int i=0;i<n;++i)
{
for(int j=0;j<m;++j)
{
cout<<"Enter ["<<i<<","<<j<<"]:";
cin>>matriza[i][j];
cout<<"\n";
}
}
};


void matrix::output()
{
for(int i=0;i<n;++i)
{
for(int j=0;j<m;++j)
{
cout<<matriza[i][j];
}
cout<<"\n";
}
cout<<"\n";
};



matrix::matrix(int** mat,int rad,int stovp)
{
n=rad;m=stovp;
matriza=new int*[n];
{
for(int i=0;i<n;++i)
{
matriza[i]=new int[m];
}
for(int i=0;i<n;++i)
for(int j=0;j<m;++j)
{
matriza[i][j]=mat[i][j];
}
}
};





matrix::matrix(const matrix& mat)
{
    n=mat.n;m=mat.m;
    matriza=new int*[n];
    for(int i=0;i<n;++i)
    {
     matriza[i]=new int[m];
    }
    for(int i=0;i<n;++i)
    for(int j=0;j<m;++j)
    {
        matriza[i][j]=mat.matriza[i][j];
    }
    cout<<"Memory is copyed\n";
};


class of matrix.cpp

#include"stdafx.h"
#include"iostream"
#include"matrix.h"
using namespace std;
 
int next(int**c,matrix**a,matrix**b,int n,int m)
{
c=new int*[n];
for(int i=0;i<n;++i)
{
c[i]=new int[m];
}
for(int i=0;i<n;++i)
    for(int j=0;j<m;++j)
    {
c[i][j]=a[i][j]+b[i][j];            //ось тут мені підкреслює плюсик
    }
};

int main()
{
matrix a=matrix();
cout<<"Matrix a:\n";
a.input();
a.output();
cout<<"Matrix B:\n";
matrix b=matrix();
b.input();
b.output();

system("pause");
return 0;
}

помилка у файлі class of matrix.cpp див.коментар

2 Востаннє редагувалося koala (31.10.2014 06:39:49)

Re: додавання двох матриць

a[ i ][ j ] має тип matrix
b[ i ][ j ] має тип matrix
оператор +, де обидва операнди мають тип matrix, не визначено.
І на майбутнє - орієнтуйтеся не на підкреслення IDE, а на повідомлення компілятора (зокрема, копіюйте їх в питання). І відступи робіть, я такий код читати відмовляюся.

Подякували: Faraon1