用友元函数重载运算符“+”和“-”将两个二维数组相加和相减,要求第一个二维数组的值由构造函数设置,另一个二维数组的值由键盘输入。
时间: 2024-02-06 16:12:31 浏览: 23
以下是实现该程序的代码:
```
#include<iostream>
using namespace std;
const int ROWS = 3;
const int COLS = 3;
class Array2D {
private:
int data[ROWS][COLS];
public:
Array2D() {
for(int i=0; i<ROWS; i++) {
for(int j=0; j<COLS; j++) {
data[i][j] = 0;
}
}
}
friend Array2D operator+(Array2D a1, Array2D a2) {
Array2D result;
for(int i=0; i<ROWS; i++) {
for(int j=0; j<COLS; j++) {
result.data[i][j] = a1.data[i][j] + a2.data[i][j];
}
}
return result;
}
friend Array2D operator-(Array2D a1, Array2D a2) {
Array2D result;
for(int i=0; i<ROWS; i++) {
for(int j=0; j<COLS; j++) {
result.data[i][j] = a1.data[i][j] - a2.data[i][j];
}
}
return result;
}
void readData() {
cout << "请输入二维数组的值(" << ROWS << "x" << COLS << "):" << endl;
for(int i=0; i<ROWS; i++) {
for(int j=0; j<COLS; j++) {
cin >> data[i][j];
}
}
}
void printData() {
cout << "二维数组的值为:" << endl;
for(int i=0; i<ROWS; i++) {
for(int j=0; j<COLS; j++) {
cout << data[i][j] << " ";
}
cout << endl;
}
}
};
int main() {
Array2D a1;
a1.printData();
Array2D a2;
a2.readData();
a2.printData();
Array2D result1 = a1 + a2;
result1.printData();
Array2D result2 = a1 - a2;
result2.printData();
return 0;
}
```
运行程序后,先会输出一个全为0的二维数组,然后让用户输入另一个二维数组的值,再输出两个二维数组相加和相减的结果。