第十五周oj刷題——Problem M: C++習題 矩陣求和--重載運算符
阿新 • • 發佈:2017-05-14
des fcm 輸出 content 運算符 reserve int 習題 tor
Description
有兩個矩陣a和b,均為2行3列。求兩個矩陣之和。重載運算符“+”,使之能用於矩陣相加(如c=a+b)。
重載流插入運算符“<<”和流提取運算符“>>”。使之能用於該矩陣的輸入和輸出。
Input
兩個2行3列矩陣
Output
矩陣之和
Sample Input
1 2 3
4 5 6
7 8 9
1 2 3
Sample Output
8 10 12
5 7 9
/* All rights reserved. * 文件名:test.cpp * 作者:陳丹妮 * 完畢日期:2015年 6 月 21 日 * 版 本 號:v1.0 */ #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][3]; }; Matrix::Matrix() {int i=0,j=0; for(;i<2;i++) for(;j<3;j++) mat[i][j]=0; } Matrix operator+(Matrix &m1,Matrix &m2) { Matrix m; int i,j; for(i=0; i<2; i++) { for(j=0; j<3; j++) m.mat[i][j]=m1.mat[i][j]+m2.mat[i][j]; } return m; } ostream& operator<<(ostream&out,Matrix&m) { int i,j; for(i=0; i<2; i++) {for(j=0; j<3; j++) out<<m.mat[i][j]<<" "; cout<<endl;} return out; } istream& operator>>(istream&in,Matrix&m) { int i,j; for(i=0; i<2; i++) for(j=0; j<3; j++) in>>m.mat[i][j]; return in; } int main() { Matrix a,b,c; cin>>a; cin>>b; c=a+b; cout<<c<<endl; return 0; }
學習心得:繼續加油,重載非常好用的,得要總結一下了!
!!!
第十五周oj刷題——Problem M: C++習題 矩陣求和--重載運算符