c++编写程序【问题描述】设计一个2行3列的矩阵类,重载运算符"+"和"-",能实现矩阵类对象的加减运算;重载流插入运算符"<<"和流提取运算符">>",使之能用于矩阵的输入和输出。 【输入形式】输入2个2行3列的矩阵数据。 【输出形式】输入的两个矩阵的加和减运算后的结果矩阵。 【样例输入】 请输入2行3列矩阵内容: 1 2 3 4 5 6 请输入2行3列矩阵内容: 1 2 3 4 5 6 【样例输出】 m1+m2= 2 4 6 8 10 12 m1-m2= 0 0 0 0 0 0
时间: 2024-03-18 21:41:44 浏览: 79
使用C++实现矩阵运算(运算符重载)
5星 · 资源好评率100%
好的,这是一个关于C++矩阵类的问题。你可以这样实现:
```cpp
#include <iostream>
using namespace std;
class Matrix {
private:
int data[2][3];
public:
Matrix() {} // 默认构造函数
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, const Matrix& m) {
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
out << m.data[i][j] << " ";
}
out << endl;
}
return out;
}
Matrix operator+(const Matrix& m) const {
Matrix res;
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
res.data[i][j] = data[i][j] + m.data[i][j];
}
}
return res;
}
Matrix operator-(const Matrix& m) const {
Matrix res;
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
res.data[i][j] = data[i][j] - m.data[i][j];
}
}
return res;
}
};
int main() {
Matrix m1, m2;
cout << "请输入2行3列矩阵内容:" << endl;
cin >> m1 >> m2;
cout << "m1+m2=\n" << m1 + m2 << "m1-m2=\n" << m1 - m2;
return 0;
}
```
在这个程序中,我们定义了一个名为Matrix的类,它包含一个2行3列的int数组作为数据成员。我们重载了输入输出运算符和加减运算符,以便于使用。在主函数中,我们首先输入两个矩阵,然后输出它们的加和减。
阅读全文