#include <iostream>
using namespace std;


重载运算符实现矩阵加减法,请高手帮我看看为什么出现运行错误,感激不尽,该怎样修改

class Matrix
{
private:
    int row,line;
    float **p;
public:
    Matrix(int r=0,int l=0)
    {
        row=r,line=l;
        p=new float*[line];
        if(!p)
        {
            cout<<"未申请到动态内存空间!";
            exit(1);
        }
        for(int i=0;i<line;i++)
        {
            p[i]=new float[row];
            if(!p[i])
            {
                cout<<"未申请到动态内存空间!";
                exit(1);
            }
            for(int j=0;j<row;j++)
            {
                p[i][j]=0;
            }
            
        }

    }
            

    void setMatrix()
    {
        for(int i=0;i<line;i++)
        {
            cout<<"输入第"<<i+1<<"行:";
            for(int j=0;j<row;j++)
                cin>>p[i][j];
        }
    }
    
    
    

    Matrix operator+(Matrix m)
    {
        Matrix plusTempt(2,2);
        for(int i=0;i<line;i++)
            for(int j=0;j<row;j++)
            plusTempt.p[i][j]=p[i][j]+m.p[i][j];
         return plusTempt;
       
    }

    Matrix operator-(Matrix m)
    {
        Matrix minusTempt(2,2);
        for(int i=0;i<line;i++)
            for(int j=0;j<row;j++)
            minusTempt.p[i][j]=p[i][j]-m.p[i][j];
        return minusTempt;
                
    }

    Matrix operator=(Matrix m)
    {
        Matrix equalTempt(2,2);
        for(int i=0;i<line;i++)
            for(int j=0;j<row;j++)
            {
                p[i][j]=m.p[i][j];
                equalTempt.p[i][j]=p[i][j];
            }    

            
        return equalTempt;


        
    }
        
    void mShow()
    {
        for(int i=0;i<line;i++)
        {
            cout<<endl;
            for(int j=0;j<row;j++)
                cout<<p[i][j]<<" ";
        }
        cout<<endl;
    }

    ~Matrix()
    {
        for(int i=0;i<line;i++) delete p[i];
        delete p;
        
    }

};
int main(void)
{
    Matrix m1(2,2),m2(2,2),m3(2,2);
    m1.setMatrix();m1.mShow();
    m2.setMatrix();m2.mShow();
    m3=m2+m1;m3.mShow();
    m3=m2-m1;m3.mShow();
    return 0;
}