visual studio运行报错

 

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;
}