Mat初始化了没,提示里都是0
#include <iostream>
#include <string>
using namespace std;
/********* Begin *********/
class Matrix
{
//矩阵类的声明
private:
int row;
int column;
public:
int** Mat=NULL;
Matrix(int r, int c);
void Fill(int value);
void Set(int r, int c, int value);
int Get(int r, int c);
void Print();
friend Matrix operator+(Matrix& m1, Matrix& m2);
friend Matrix operator-(Matrix& m1, Matrix& m2);
friend Matrix operator*(Matrix& m1, Matrix& m2);
};
//矩阵类的定义
Matrix::Matrix(int r, int c)
{
int** Mat = new int* [r];
for (int i = 0; i < c; i++)
Mat[i] = new int[c];
}
void Matrix::Fill(int value)
{
int m, n;
for (m = 0; m < row; m++)
for (n = 0; n < column; n++)
Mat[m][n] = value;
}
void Matrix::Set(int r, int c, int value)
{
Mat[r - 1][c - 1] = value;
}
int Matrix::Get(int r, int c)
{
return Mat[r - 1][c - 1];
}
void Matrix::Print()
{
for (int i = 0; i < row; i++)
{
for (int n = 0; n < column; n++)
cout << Mat[i][n] << " ";
cout << endl;
}
}
Matrix operator+(Matrix& m1, Matrix& m2)
{
//实现矩阵加法
cout << "m1 + m2 :" << endl;
for (int i = 0; i < m1.row; i++)
for (int n = 0; n < m1.column; n++)
{
m1.Mat[i][n] = m1.Mat[i][n] + m2.Mat[i][n];
}
return m1;
}
Matrix operator-(Matrix& m1, Matrix& m2)
{
//实现矩阵减法
cout << "m1 - m2 :" << endl;
for (int i = 0; i < m1.row; i++)
for (int n = 0; n < m1.column; n++)
{
m1.Mat[i][n] = m1.Mat[i][n] - m2.Mat[i][n];
}
return m1;
}
Matrix operator*(Matrix& m1, Matrix& m2)
{
//实现矩阵乘法
cout << "m1 * m2 :" << endl;
for (int i = 0; i < m1.row; i++)
for (int n = 0; n < m1.column; n++)
for (int p = 0; p < m1.column; p++)
{
m1.Mat[i][n] += m1.Mat[i][p] * m2.Mat[p][i];
}
return m1;
}