大家帮我看看下面这段代码,好吗?谢谢

来源:百度知道 编辑:UC知道 时间:2024/05/12 07:06:49
定义一个m*n的实型矩阵类Matrix,重载+,-和=运算符,实现矩阵的加,减和赋值运算。
#include <iostream>
#include <cmath>
using namespace std;

class Matrix{
float b[2][2];
public:
Matrix(float *c)
{for(int i=0;i<2;i++)
for(int j=0;j<2;j++)
{b[i][j]=c[i][j];}
b=c;
}
Matrix& operator+(Matrix&);
Matrix& operator-(Matrix&);
Matrix& operator=(Matrix&);
void Show();
};

Matrix& Matrix::operator +(Matrix& c)
{Matrix t;
for(int i=0;i<2;i++)
for(int j=0;j<2;j++)
{t.b[i][j]=b[i][j]+c.b[i][j];
}
return t;
}

Matrix& Matrix::operator -(Matrix& c)
{Matrix t;
for(int i=0;i<2;i++)
for(int j=0;j<2;j++)
{t.b[i][j]=b[i][j]+c.b[i][j];
}
return t;
}

Matrix& Matrix::operator =(Matrix c)
{
for(int i=0;i<2;i++)
for(int j=0;j<2;j++)
{b[i][j]=c.b[i][j];
}

程序调试通过,你自己对照一下吧:
#include <iostream>
#include <cmath>
using namespace std;

class Matrix
{
float b[2][2];
public:
Matrix()
{
for(int i=0;i<2;i++)
for(int j=0;j<2;j++)
{
b[i][j]=0;
}
}
Matrix(float c[][2])
{
for(int i=0;i<2;i++)
for(int j=0;j<2;j++)
{
b[i][j]=c[i][j];
}
//b=c;
}
Matrix operator+(Matrix&);
Matrix operator-(Matrix&);
Matrix operator=(Matrix&);
void Show();
};

Matrix Matrix::operator +(Matrix& c)
{
Matrix t;
for(int i=0;i<2;i++)
for(int j=0;j<2;j++)
{
t.b[i][j]=b[i][j]+c.b[i][j];
}
return t;
}

Matrix Matrix::operator -(Matrix& c)
{
Matrix t;
for(int i=0;i<2;i++)
for(int j=0;j<2;j++)
{
t.b[i][j]=b[i][j]+c.b[i][j];
}