求代码:有两个矩阵a和b,均为2行3列。求两个矩阵之和。重载运算符“+”,使之能用于矩阵相加。如:c=a+b。
时间: 2023-05-31 10:07:57 浏览: 116
下面是代码实现:
```c++
#include <iostream>
using namespace std;
class Matrix {
public:
int data[2][3];
Matrix() {}
Matrix(int d[]) {
for(int i=0;i<2;i++) {
for(int j=0;j<3;j++) {
data[i][j] = d[i*3+j];
}
}
}
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;
}
};
ostream& operator <<(ostream& os, const Matrix& matrix) {
for(int i=0;i<2;i++) {
for(int j=0;j<3;j++) {
os << matrix.data[i][j] << " ";
}
os << endl;
}
return os;
}
int main() {
int d1[] = {1, 2, 3, 4, 5, 6};
int d2[] = {7, 8, 9, 10, 11, 12};
Matrix a(d1);
Matrix b(d2);
Matrix c = a + b;
cout << c;
return 0;
}
```
其中运算符重载部分使用的是成员函数,而输出部分使用的是友元函数。
运行结果如下:
```
8 10 12
14 16 18
```
阅读全文