Это для назначения на моем факультете, я хочу сделать перегрузку для operator +
для матрицы. Я создаю новую матрицу и помещаю сумму в эту матрицу, и я печатаю ее, но она ничего не печатает, так что кто-нибудь может помочь мне решить эту проблему?
class matrix
{
private:
int* data;
int row, col;
public:
matrix();
matrix(int r, int c, int num[]);
friend ostream& operator << (ostream& out, matrix mat1);
friend istream& operator >> (istream& in, matrix& mat);
int getrow();
int getcol();
int getdata(int i);
int setrow(int r);
int setcol(int c);
int setdata(int num[]);
matrix operator+ (const matrix& mat2);
};
Теперь я пишу этот код, и он ничего не печатает, может кто-нибудь помочь мне решить эту проблему?сначала я делаю сеттер и геттер для данных.
matrix::matrix(){
row=0;
col=0;
}
matrix::matrix(int r, int c, int num[])
{
row = r;
col = c;
data = new int[r*c];
for(int i=0; i < (r*c); i++)
data[i] = num[i];
}
matrix::getrow() { return row; }
matrix::getcol() { return col; }
matrix::setrow(int r) { row=r; }
matrix::setcol(int c) { col=c; }
matrix matrix::operator+ (const matrix& mat2)
{
matrix mat3;
for(int i=0; i < mat3.getrow() * mat3.getcol(); i++) {
mat3.data[i] = data[i] + mat2.data[i];
}
return mat3;
}
int main(){
int num2 [] = {1,2,3,4,5,6,7,8,8};
int num3 [] = {1,0,0,0,1,0,0,0,1};
matrix x;
matrix mat2(3, 3, num2);
matrix mat3(3, 3, num3);
matrix mat4;
mat4 = mat2 + mat3;
cou << mat4;
return 0;
}