用c++编写改程序,有两2*3规模的矩阵a和b,编写程序,求两个矩阵之和。重做插入运算符和提取运算符,使之能用于该矩阵的输入和输出。重载运算符“+”,使之能用于矩阵相加,如c=a+b.
时间: 2024-02-24 14:55:25 浏览: 206
好的,以下是 C++ 代码实现两个矩阵相加,并重载插入、提取、加法运算符:
```cpp
#include <iostream>
using namespace std;
class Matrix {
private:
int data[2][3];
public:
// 构造函数
Matrix() {
for(int i=0; i<2; i++) {
for(int j=0; j<3; j++) {
data[i][j] = 0;
}
}
}
// 重载插入运算符
friend istream& operator>>(istream& in, Matrix& 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, Matrix& m) {
for(int i=0; i<2; i++) {
for(int j=0; j<3; j++) {
out << m.data[i][j] << "\t";
}
out << endl;
}
return out;
}
// 重载加法运算符
Matrix operator+(Matrix& m) {
Matrix temp;
for(int i=0; i<2; i++) {
for(int j=0; j<3; j++) {
temp.data[i][j] = this->data[i][j] + m.data[i][j];
}
}
return temp;
}
};
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 A:" << endl;
cout << a << endl;
cout << "Matrix B:" << endl;
cout << b << endl;
cout << "Matrix C = A + B:" << endl;
cout << c << endl;
return 0;
}
```
在这个程序中,我们定义了一个 Matrix 类来表示矩阵,并在类中定义了一个二维数组 data 来存储矩阵元素。然后,我们重载了插入运算符(>>)、提取运算符(<<)和加法运算符(+)。在主函数中,我们创建了两个矩阵 a 和 b,通过插入运算符输入矩阵的元素,然后通过加法运算符计算两个矩阵的和 c,最后通过提取运算符将矩阵输出。运行程序,输出如下:
```
Enter matrix A:
1 2 3
4 5 6
Enter matrix B:
7 8 9
10 11 12
Matrix A:
1 2 3
4 5 6
Matrix B:
7 8 9
10 11 12
Matrix C = A + B:
8 10 12
14 16 18
```
阅读全文