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; }