有两个矩阵a和b,均为3行4列。重载流提取运算符“>>”和流插入运算符“<<”,使之能用于该矩阵的输入和输出。
时间: 2023-07-16 08:16:31 浏览: 96
有两个矩阵a和b,均为2行3列。
可以按照如下方式定义重载运算符:
```c++
#include <iostream>
using namespace std;
class Matrix {
private:
int mat[3][4]; // 矩阵内容
public:
friend istream& operator>>(istream&, Matrix&); // 重载输入运算符
friend ostream& operator<<(ostream&, const Matrix&); // 重载输出运算符
};
// 重载输入运算符
istream& operator>>(istream& in, Matrix& m) {
for (int i = 0; i < 3; ++i) {
for (int j = 0; j < 4; ++j) {
in >> m.mat[i][j];
}
}
return in;
}
// 重载输出运算符
ostream& operator<<(ostream& out, const Matrix& m) {
for (int i = 0; i < 3; ++i) {
for (int j = 0; j < 4; ++j) {
out << m.mat[i][j] << " ";
}
out << endl;
}
return out;
}
int main() {
Matrix a, b;
cout << "请输入矩阵a:" << endl;
cin >> a;
cout << "矩阵a为:" << endl;
cout << a;
cout << "请输入矩阵b:" << endl;
cin >> b;
cout << "矩阵b为:" << endl;
cout << b;
return 0;
}
```
这里我们将输入和输出的运算符重载为类的友元函数,以便直接访问类的私有成员变量。在 `main()` 函数中,我们先定义了两个矩阵 `a` 和 `b`,然后通过 `cin` 和 `cout` 分别输入和输出这两个矩阵,其中 `cin` 和 `cout` 会自动调用我们重载的输入和输出运算符。
阅读全文