c++设计一个矩阵类,主函数定义矩阵类对象,调用重载的运算符完成矩阵运算,减法出了问题!!!!! 5
#include<iostream>usingnamespacestd;classMatrix{private:int*m;introw;intcol;public:Ma...
#include <iostream>using namespace std;class Matrix{private: int *m; int row; int col;public: Matrix(int,int); friend Matrix operator +(Matrix &a,Matrix &b); friend Matrix operator -(Matrix &a,Matrix &b); Matrix operator =(Matrix &a); Matrix operator +=(Matrix &a); void Input(); void Output();};Matrix::Matrix(int r=0,int c=0){ row=r;col=c; m=new int[row*col];}void Matrix::Input(){ cout<<"请输入"<<row*col<<"个数:"; for(int i=0;i<row;i++) for(int j=0;j<col;j++) cin>>m[i*col+j];}Matrix operator +(Matrix &a,Matrix &b){ Matrix temp; int r=a.row; int c=a.col; for(int i=0;i<r;i++) for(int j=0;j<c;j++) temp.m[i*c+j]=a.m[i*c+j]+b.m[i*c+j]; return temp;}Matrix operator -(Matrix &a,Matrix &b){ Matrix temp; int r=a.row; int c=a.col; for(int i=0;i<r;i++) for(int j=0;j<c;j++) temp.m[i*c+j]=a.m[i*c+j]-b.m[i*c+j]; return temp;}Matrix Matrix::operator =(Matrix &a){ for(int i=0;i<row;i++) for(int j=0;j<col;j++) m[i*col+j]=a.m[i*col+j]; return *this;}Matrix Matrix::operator +=(Matrix &a){ for(int i=0;i<row;i++) for(int j=0;j<col;j++) m[i*col+j]=m[i*col+j]+a.m[i*col+j]; return *this;}void Matrix::Output(){ for(int i=0;i<row;i++){ for(int j=0;j<col;j++) cout<<m[i*col+j]<<" "; cout<<endl; }}int main(){ Matrix a(2,3),b(2,3),c(2,3); a.Input();a.Output(); b.Input();b.Output(); c=a+b; cout<<"c=a+b,c的结果:"<<endl; c.Output(); a+=b; cout<<"a+=b,a的结果:"<<endl; a.Output(); c=a-b; cout<<"c=a-b,c的结果:"<<endl; c.Output(); return 0;}减法出了问题,但不知道哪里
展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询