2. (其它) 编写矩阵类: (1)类中定义矩阵类Matrix中的private类型的int型成员变量matrixArray[2][3]; (2)定义类成员函数InputData,对变量matrixArray进行以此赋值; (3)利用operator + 实现两个矩阵类对象的加法。 (4)重载流插入运算符“<<”和流提取运算符“>>”,使之能用于该矩阵的输入和输出。
时间: 2024-02-13 12:07:19 浏览: 24
好的,我可以帮你解答这个问题。
以下是一个简单的矩阵类的实现,包括输入数据、矩阵加法以及流插入和流提取运算符的重载。
```c++
#include <iostream>
class Matrix {
private:
int matrixArray[2][3];
public:
// 输入数据
void InputData() {
std::cout << "请输入矩阵的元素(2x3):" << std::endl;
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
std::cin >> matrixArray[i][j];
}
}
}
// 矩阵加法
Matrix operator+(const Matrix& m) const {
Matrix result;
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
result.matrixArray[i][j] = matrixArray[i][j] + m.matrixArray[i][j];
}
}
return result;
}
// 流插入运算符重载
friend std::ostream& operator<<(std::ostream& os, const Matrix& m) {
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
os << m.matrixArray[i][j] << " ";
}
os << std::endl;
}
return os;
}
// 流提取运算符重载
friend std::istream& operator>>(std::istream& is, Matrix& m) {
m.InputData();
return is;
}
};
int main() {
Matrix m1, m2;
std::cin >> m1 >> m2;
std::cout << "第一个矩阵:" << std::endl << m1 << std::endl;
std::cout << "第二个矩阵:" << std::endl << m2 << std::endl;
Matrix m3 = m1 + m2;
std::cout << "两个矩阵相加的结果:" << std::endl << m3 << std::endl;
return 0;
}
```
这个矩阵类中,我们使用了一个二维数组 `matrixArray` 存储矩阵中的元素。`InputData` 函数用于输入矩阵的元素,加法运算符重载函数 `operator+` 实现了两个矩阵对象的加法,流插入运算符的重载函数 `operator<<` 和流提取运算符的重载函数 `operator>>` 分别用于矩阵的输出和输入。
在 `main` 函数中,我们首先输入了两个矩阵对象 `m1` 和 `m2`,然后输出了它们的值。接着,我们使用 `operator+` 计算了两个矩阵对象的和,将结果存储在 `m3` 中,并输出了它的值。
希望这个例子能够帮助你理解如何编写一个简单的矩阵类。如果你还有其他问题,请随时问我。