有两个矩阵a和b,均为2行3列。用面向对象的方法求两个矩阵之和。要求根据main( )函数中的操作去设计M类,在该类中根据运算符操作的要求去重载相应的运算符。两矩阵相加c =a+b:输入第一个矩阵数据为:1 2 3 第二个矩阵数据为:1 1 1 则两矩阵和为:2 3 4 4 5 6 1 1 1 5 6 7int main( ){ M a,b,c;cin>>a;cin>>b;c=a+b; cout<<c<<endl;return 0;}请写出完整的程序。
时间: 2023-05-17 08:04:57 浏览: 84
以下是完整的程序:
#include <iostream>
using namespace std;
class M {
private:
int data[2][3];
public:
M() {}
friend istream& operator>>(istream& in, M& m) {
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
in >> m.data[i][j];
}
}
return in;
}
friend ostream& operator<<(ostream& out, const M& m) {
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
out << m.data[i][j] << " ";
}
out << endl;
}
return out;
}
friend M operator+(const M& a, const M& b) {
M c;
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
c.data[i][j] = a.data[i][j] + b.data[i][j];
}
}
return c;
}
};
int main() {
M a, b, c;
cin >> a;
cin >> b;
c = a + b;
cout << c << endl;
return 0;
}
阅读全文