有两个矩阵a和b,均为2行3列。求两个矩阵之和。 ①重载运算符“+”,使之能用于矩阵相加。如c=a+b。 ②在第①题基础上,重载插入运算符”<<”和流提取运算符“>>”,使之能用于该矩阵的输入和输出。
时间: 2024-02-05 11:12:03 浏览: 80
python 两个 3 行 3 列的矩阵,实现其对应位置的数据相加,并返回一个新矩阵(示例)
5星 · 资源好评率100%
以下是实现上述功能的代码示例:
```cpp
#include <iostream>
using namespace std;
class Matrix {
private:
int data[2][3]; // 存储矩阵数据
public:
Matrix() {} // 默认构造函数
Matrix(int arr[][3]) { // 带参构造函数
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
data[i][j] = arr[i][j];
}
}
}
Matrix operator+(const Matrix& mat) const { // 重载加号运算符
Matrix res;
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
res.data[i][j] = data[i][j] + mat.data[i][j];
}
}
return res;
}
friend ostream& operator<<(ostream& os, const Matrix& mat) { // 重载输出流运算符
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
os << mat.data[i][j] << " ";
}
os << endl;
}
return os;
}
friend istream& operator>>(istream& is, Matrix& mat) { // 重载输入流运算符
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
is >> mat.data[i][j];
}
}
return is;
}
};
int main() {
int arr1[2][3] = {{1, 2, 3}, {4, 5, 6}};
int arr2[2][3] = {{7, 8, 9}, {10, 11, 12}};
Matrix a(arr1), b(arr2);
Matrix c = a + b;
cout << "a+b=" << endl << c; // 输出矩阵c
Matrix d;
cout << "请输入矩阵d:" << endl;
cin >> d; // 输入矩阵d
cout << "矩阵d为:" << endl << d; // 输出矩阵d
return 0;
}
```
运行结果如下:
```
a+b=
8 10 12
14 16 18
请输入矩阵d:
1 2 3
4 5 6
矩阵d为:
1 2 3
4 5 6
```
阅读全文