两具矩阵a和b,均为2行3列,编一程序,求两个矩阵之和。重载运算符“<<”和“>>”,使之用C++写能用于该矩阵的输入和输出。重载运算符“+”,使之能用于行矩阵相加,如:c=a+b。
时间: 2024-03-05 22:54:09 浏览: 148
以下是实现上述功能的 C++ 代码:
```cpp
#include <iostream>
using namespace std;
class Matrix {
private:
int arr[2][3];
public:
friend istream& operator>>(istream& in, Matrix& m) {
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
in >> m.arr[i][j];
}
}
return in;
}
friend ostream& operator<<(ostream& out, Matrix& m) {
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
out << m.arr[i][j] << " ";
}
out << endl;
}
return out;
}
friend Matrix operator+(Matrix& m1, Matrix& m2) {
Matrix m3;
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
m3.arr[i][j] = m1.arr[i][j] + m2.arr[i][j];
}
}
return m3;
}
};
int main() {
Matrix a, b, c;
cout << "请输入矩阵a:" << endl;
cin >> a;
cout << "请输入矩阵b:" << endl;
cin >> b;
c = a + b;
cout << "矩阵a + b = " << endl;
cout << c;
return 0;
}
```
在上述代码中,我们定义了一个名为 Matrix 的类,其中包含了一个 2 行 3 列的二维数组作为成员变量。同时,我们重载了输入输出运算符和加法运算符,实现了矩阵的输入输出和相加功能。在 main 函数中,我们通过输入矩阵 a 和 b,计算它们的和并输出。
阅读全文