广告
淘宝内部优惠券
当前位置: 开发异常方案库» C/C++ » 为啥编译后提示<<重载错误啊......

为啥编译后提示<<重载错误啊......

开发异常方案库  收集整理于:2020-05-27 21:51:00  浏览:66次
#include <iostream> #include <iomanip> #include <cstdlib> using namespace std; //____qcodep____ class Matrix { public:     Matrix(int x,int y){         r=x;         c=y;     };     friend istream& operator >> (istream&,Matrix&);     friend ostream& operator << (ostream&,Matrix&);     Matrix operator + (Matrix & m2);     Matrix operator - (Matrix & m2);     Matrix operator * (Matrix & m2); private:     int r,c;     int M[1000][1000]; }; istream& operator >> (istream& in,Matrix& m){     int i,j;     for(i=1;i<=m.r;i++){         for(j=1;j<=m.c;j++){             in>>m.M[i][j];         }     }     return in; } ostream& operator << (ostream& out,Matrix& m){     if(m.r==-1){         out<<setw(6)<<"invalid operation!"<<endl;         return out;     }     else{         int i,j;         for(i=1;i<=m.r;i++){             for(j=1;j<=m.c;j++){                 out<<setw(6)<<m.M[i][j];                 if(j==m.c)                     out<<endl;             }         }         return out;     } } Matrix Matrix::operator +(Matrix &m2){     if(r==m2.r && c==m2.c){         int i,j;         for(i=1;i<=r;i++){             for(j=1;j<=c;j++){                 M[i][j]+=m2.M[i][j];             }         }         return *this;     }     else{         return Matrix(-1,-1);     } } Matrix Matrix::operator -(Matrix &m2){     if(r==m2.r && c==m2.c){         int i,j;         for(i=1;i<=r;i++){             for(j=1;j<=c;j++){                 M[i][j]-=m2.M[i][j];             }         }         return *this;     }     else{         return Matrix(-1,-2);     } } Matrix Matrix::operator *(Matrix &m2){     if(c==m2.r){         int i,j,k;         Matrix temp(r,m2.c);         for(i=1;i<=r;i++){             for(j=1;j<=c;j++){                 temp.M[i][j]=0;                 for(k=1;k<=c;k++){                     temp.M[i][j]+=(M[i][k]+m2.M[k][j]);                 }             }         }         return temp;     }     else         return Matrix(-1,-3); } int main() {     int r,c;     cin>>r>>c;     if(r<1 || c<1){     cout<<"Input error."<<endl;     exit(1);     }     Matrix A(r,c);     cin >> A;     cin>>r>>c;     if(r<1 || c<1){     cout<<"Input error."<<endl;     exit(1);     }     Matrix B(r,c);     cin >> B;     cout<<"A + B:"<<endl;     cout << A + B <<endl;     cout<<"A - B:"<<endl;     cout << A - B <<endl;     cout<<"A * B:"<<endl;     cout << A * B <<endl;     return 0; }

------网友观点--------------------
const T& 

------网友观点--------------------
请问T是什么……
发布此文章仅为传递网友分享,不代表本站观点,若侵权请联系我们删除,本站将不对此承担任何责任。
软件开发 程序错误 异常 ybaby.netCopyright © 2020-2026  ybaby 版权所有  桂ICP备17004385号-2 网站地图