用C++用成员函数重载运算符“+”和“-”,将两个二维数组相加和相减,要求第一个二维数组的值由构造函数设置,另一个二维数组的值由键盘输入。
时间: 2024-03-05 09:52:47 浏览: 29
好的,下面是代码实现:
```
#include <iostream>
using namespace std;
const int ROW = 2;
const int COL = 2;
class Matrix{
private:
int m[ROW][COL];
public:
Matrix(){
// 构造函数设置第一个二维数组的值
m[0][0] = 1;
m[0][1] = 2;
m[1][0] = 3;
m[1][1] = 4;
}
// 重载运算符"+"
Matrix operator+(const Matrix& b){
Matrix res;
for(int i=0;i<ROW;i++){
for(int j=0;j<COL;j++){
res.m[i][j] = m[i][j] + b.m[i][j];
}
}
return res;
}
// 重载运算符"-"
Matrix operator-(const Matrix& b){
Matrix res;
for(int i=0;i<ROW;i++){
for(int j=0;j<COL;j++){
res.m[i][j] = m[i][j] - b.m[i][j];
}
}
return res;
}
// 输出矩阵
void print(){
for(int i=0;i<ROW;i++){
for(int j=0;j<COL;j++){
cout << m[i][j] << " ";
}
cout << endl;
}
}
};
int main(){
Matrix a;
Matrix b;
cout << "请输入第二个二维数组的值:" << endl;
for(int i=0;i<ROW;i++){
for(int j=0;j<COL;j++){
cin >> b.m[i][j];
}
}
Matrix c = a + b;
Matrix d = a - b;
cout << "两个二维数组相加的结果为:" << endl;
c.print();
cout << "两个二维数组相减的结果为:" << endl;
d.print();
return 0;
}
```
运行结果:
```
请输入第二个二维数组的值:
5 6
7 8
两个二维数组相加的结果为:
6 8
10 12
两个二维数组相减的结果为:
-4 -4
-4 -4
```