黑马程序员技术交流社区

标题: 【手打】运算符重载 [打印本页]

作者: 悄然林静    时间: 2016-7-29 23:57
标题: 【手打】运算符重载
题目:有两个2行3列的矩阵a和b,重载运算符“+”使之能用于矩阵相加,求两个矩阵之和。
[C++] 纯文本查看 复制代码
#include <iostream>
using namespace std;
class Matrix                                          //定义Matrix类
{public:
   Matrix();                                          //默认构造函数
   friend Matrix operator+(Matrix &,Matrix &);        //重载运算符“+”
   void input();                                      //输入数据函数
   void display();                                    //输出数据函数
  private:
   int mat[2][3];
};

Matrix::Matrix()                                      //定义构造函数
{for(int i=0;i<2;i++)
  for(int j=0;j<3;j++)
   mat[j]=0;
}

Matrix operator+(Matrix &a,Matrix &b)                //定义重载运算符“+”函数
{Matrix c;
for(int i=0;i<2;i++)
   for(int j=0;j<3;j++)
     {c.mat[j]=a.mat[j]+b.mat[j];}
return c;
}
void Matrix::input()                                   //定义输入数据函数
{cout<<"input value of matrix:"<<endl;
for(int i=0;i<2;i++)
  for(int j=0;j<3;j++)
   cin>>mat[j];
}

void Matrix::display()                                //定义输出数据函数
{for (int i=0;i<2;i++)
  {for(int j=0;j<3;j++)
   {cout<<mat[j]<<" ";}
    cout<<endl;}
}

int main()
{Matrix a,b,c;
a.input();
b.input();
cout<<endl<<"Matrix a:"<<endl;
a.display();
cout<<endl<<"Matrix b:"<<endl;
b.display();
c=a+b;                                         //用重载运算符“+”实现两个矩阵相加
cout<<endl<<"Matrix c = Matrix a + Matrix b :"<<endl;
c.display();
return 0;
}






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2