您的位置:首页 > 其它

信管14:运算符重载习题7-12示例

2015-05-27 20:49 267 查看
#include<iostream>

using namespace std;

class Matrix{

public: 

    Matrix();

    friend Matrix operator+(Matrix&,Matrix&);     //重载运算符"+"

    friend ostream& operator<<(ostream&,Matrix&); //重载运算符"<<"

    friend istream& operator>>(istream&,Matrix&); //重载运算符">>"

private:

    int mat[2][4];

};

Matrix::Matrix()

{ for(int i=0;i<2;i++)

        for(int j=0;j<4;j++)

          mat[i][j]=0;

}

Matrix operator+(Matrix& a,Matrix& b)        //定义运算符"+"的重载函数

{ Matrix c;

  for(int i=0;i<2;i++)

        for(int j=0;j<4;j++)

        { c.mat[i][j]=a.mat[i][j]+b.mat[i][j]; }

  return c;

}

istream& operator>>(istream&in,Matrix& m)   //定义运算符">>"的重载函数

{ cout<<"input value of matrix:"<<endl;

  for(int i=0;i<2;i++)

    for(int j=0;j<4;j++)

          in>>m.mat[i][j];

   return in;

}

ostream& operator<<(ostream& out,Matrix& m)  //定义运算符"<<"的重载函数

{ for(int i=0;i<2;i++)  

   { for(int j=0;j<4;j++)

        { out<<m.mat[i][j]<<" ";}

     out<<endl;

    }

  return out;

}

int main()

{ Matrix a,b,c;

  cin>>a;                                     //用cin输入矩阵a

  cin>>b;                                     //用cin输入矩阵b

  cout<<"Matrix a=:"<<endl<<a<<endl;           //用cout输出矩阵a

  cout<<"Matrix b=:"<<endl<<b<<endl;           //用cout输出矩阵b

  c=a+b;

  cout<<"Matrix c=:"<<endl<<c<<endl;//用cout输出矩阵c

  system("pause");

 return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: