首页 > 代码库 > 面向对象程序设计上机练习十一(运算符重载)

面向对象程序设计上机练习十一(运算符重载)

                                   面向对象程序设计上机练习十一(运算符重载)

Time Limit: 1000MS Memory limit: 65536K

题目描述

有两个矩阵a和b,均为2行3列,求两个矩阵之和。重载运算符“+”,使之能用于矩阵相加。如:c=a+b。

输入

第1、2行是矩阵a的值,数据以空格分开。
第3、4行是矩阵b的值,数据以空格分开。

输出

2个矩阵a、b之和,以行列形式显示。

示例输入

2 3 43 5 34 3 15 4 3

示例输出

6 6 58 9 6

     

#include <iostream>#include <string>#include <algorithm>using namespace std;class Matrix //矩阵运算{    private:      int a[3];      int b[3];    public:      void input()      {          int i;          for(i=0; i<3; i++)          cin>>a[i];          for(i=0;  i<3; i++)          cin>>b[i];      }      void outp()      {          int j;          for(j=0; j<3; j++)          {              if(j==2)                cout<<a[j]<<endl;              else              cout<<a[j]<<‘ ‘;          }          for(j=0; j<3; j++)          {              if(j==2)                cout<<b[j]<<endl;              else              cout<<b[j]<<‘ ‘;          }      }      friend Matrix operator +(Matrix &c1, Matrix &c2 )      {          Matrix c;          int i, j;          for(i=0; i<3; i++)          {              c.a[i]=c1.a[i]+c2.a[i];          }          for(j=0; j<3; j++)          {              c.b[j]=c1.b[j]+c2.b[j];          }          return c;      }};int main(){   Matrix c1, c2, d;   c1.input();   c2.input();   d=c1+c2;   d.outp();   return 0;}

 

面向对象程序设计上机练习十一(运算符重载)