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;}减法出了问题,但不知道哪里 展开
 我来答
谢帆43
2018-05-17 · 超过16用户采纳过TA的回答
知道答主
回答量:46
采纳率:0%
帮助的人:18.1万
展开全部
你重载函数里temp没有设置长宽
还有下次代码直接发截图应该效果更好
以及并不只是减法出了问题,而是定义了Temp的运算符都出了问题
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式