有两个矩阵a和b,均为2行3列。求两个矩阵的和,具体要求如下: (1)重载运算符“+”,使之能用于矩阵相加,如矩阵c=a+b. (2)重载流插入运算符“<<”和流提取“>>”运算符,使之能用于该矩阵的输入和输出. (3)写出测试用main( )函数.
时间: 2024-03-14 22:45:10 浏览: 117
好的,我来回答你的问题。下面是一个 C++ 程序,其中包含了你提出的要求:
```
#include <iostream>
using namespace std;
class Matrix {
private:
int data[2][3];
public:
Matrix() {}
Matrix operator+(const Matrix& other) const {
Matrix result;
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
result.data[i][j] = data[i][j] + other.data[i][j];
}
}
return result;
}
friend ostream& operator<<(ostream& os, const Matrix& m) {
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
os << m.data[i][j] << " ";
}
os << endl;
}
return os;
}
friend istream& operator>>(istream& is, Matrix& m) {
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
is >> m.data[i][j];
}
}
return is;
}
};
int main() {
Matrix a, b, c;
cout << "Enter matrix a:" << endl;
cin >> a;
cout << "Enter matrix b:" << endl;
cin >> b;
c = a + b;
cout << "Matrix c = a + b:" << endl;
cout << c;
return 0;
}
```
在上面的代码中,我们定义了一个 Matrix 类,它有一个私有数据成员 `data`,表示一个 $2 \times 3$ 的矩阵。我们重载了运算符 `+`,使之能够对两个矩阵进行相加。我们还重载了流插入运算符 `<<` 和流提取运算符 `>>`,使之能够对矩阵进行输入和输出。
在 `main()` 函数中,我们创建了三个矩阵对象 `a`、`b` 和 `c`,并分别从标准输入中输入了 `a` 和 `b` 的值。接着,我们将 `a` 和 `b` 相加,结果保存在 `c` 中,并将结果输出到标准输出。
请注意,这里的输入和输出格式是按照矩阵的形式来进行的,即每个元素之间用空格分隔,行与行之间用换行符分隔。
阅读全文