矩阵求和--重载运算符

来源:互联网 发布:日本弥生人知乎 编辑:程序博客网 时间:2024/04/27 20:38

C++习题 矩阵求和--重载运算符

[Submit][Status][Web Board]

Description

有两个矩阵a和b,均为2行3列。求两个矩阵之和。重载运算符“+”,使之能用于矩阵相加(如c=a+b)。
重载流插入运算符“<<”和流提取运算符“>>”,使之能用于该矩阵的输入和输出。

Input

两个2行3列矩阵

Output

矩阵之和

Sample Input

1 2 34 5 67 8 91 2 3

Sample Output

8 10 125 7 9
#include <iostream.h>//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][3];};Matrix::Matrix(){int i=0,j=0;for(;i<2;i++)for(;j<3;j++)mat[i][j]=0;}Matrix operator+(Matrix &a,Matrix &b)  {Matrix c;int i,j;  for(i=0;i<2;i++)  for(j=0;j<3;j++)  c.mat[i][j]=a.mat[i][j]+b.mat[i][j];  return c;}     ostream& operator<<(ostream&output,Matrix &a)  {int i,j;  for(i=0;i<2;i++)  {for(j=0;j<2;j++) output<<a.mat[i][j]<<' ';output<<a.mat[i][j];cout<<endl;}  return output;}     istream& operator>>(istream&input,Matrix&a)  {int i,j;  for(i=0;i<2;i++)  for(j=0;j<3;j++) input>>a.mat[i][j];  return input;}  /* C++代码 */ int main(){    Matrix a,b,c;    cin>>a;    cin>>b;    c=a+b;    cout<<c<<endl;    return 0;}


1 0
原创粉丝点击