用C++编写一个程序完成下列题目,编写一个程序,用成员函数重载运算符“+”和“-”,将两个二维数组相加和相减, 要求第一个二维数组的值由构造函数设置,另一个二维数组的值由键盘输入。
时间: 2024-03-22 10:37:00 浏览: 14
好的,下面是完整的程序代码:
```cpp
#include <iostream>
using namespace std;
const int ROWS = 2;
const int COLS = 3;
class Array2D {
private:
int data[ROWS][COLS];
public:
Array2D() {
data[0][0] = 1;
data[0][1] = 2;
data[0][2] = 3;
data[1][0] = 4;
data[1][1] = 5;
data[1][2] = 6;
}
friend Array2D operator+(const Array2D& a, const Array2D& b) {
Array2D result;
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
result.data[i][j] = a.data[i][j] + b.data[i][j];
}
}
return result;
}
friend Array2D operator-(const Array2D& a, const Array2D& b) {
Array2D result;
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
result.data[i][j] = a.data[i][j] - b.data[i][j];
}
}
return result;
}
void print() {
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
cout << data[i][j] << " ";
}
cout << endl;
}
}
};
int main() {
Array2D a1;
Array2D a2;
cout << "Enter the values of the second array:" << endl;
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
cin >> a2.data[i][j];
}
}
Array2D sum = a1 + a2;
Array2D diff = a1 - a2;
cout << "Sum of the arrays:" << endl;
sum.print();
cout << "Difference of the arrays:" << endl;
diff.print();
return 0;
}
```
这个程序定义了一个名为 `Array2D` 的类,用于存储二维数组的数据。其中,构造函数会初始化一个固定的二维数组,而 `operator+` 和 `operator-` 运算符重载函数则用于实现数组的相加和相减操作。程序的主函数会创建两个 `Array2D` 类的对象,其中一个对象的值是固定的,而另一个对象的值则从键盘输入获取。程序最终会输出这两个数组的和与差。