根据用成员函数重载运算符“+”和“-”,将两个二维数组相加和相减,要求第一个二维数组的值由构造函数设置,另一个二维数组的值由键盘输入的要求用C++写出代码
时间: 2024-03-05 11:53:08 浏览: 84
两个二维数组相加,用成员函数重载运算符“+”和“-”
5星 · 资源好评率100%
以下是使用成员函数重载运算符"+"和"-"来实现两个二维数组相加和相减的C++代码,其中第一个二维数组的值由构造函数设置,另一个二维数组的值由键盘输入:
```c++
#include <iostream>
using namespace std;
const int ROW = 3;
const int COL = 3;
class Array {
private:
int data[ROW][COL];
public:
Array() {
for (int i = 0; i < ROW; i++) {
for (int j = 0; j < COL; j++) {
data[i][j] = i + j;
}
}
}
void input() {
cout << "请输入一个" << ROW << "x" << COL << "的二维数组:" << endl;
for (int i = 0; i < ROW; i++) {
for (int j = 0; j < COL; j++) {
cin >> data[i][j];
}
}
}
Array operator+(const Array& a) {
Array res;
for (int i = 0; i < ROW; i++) {
for (int j = 0; j < COL; j++) {
res.data[i][j] = data[i][j] + a.data[i][j];
}
}
return res;
}
Array operator-(const Array& a) {
Array res;
for (int i = 0; i < ROW; i++) {
for (int j = 0; j < COL; j++) {
res.data[i][j] = data[i][j] - a.data[i][j];
}
}
return res;
}
void print() {
for (int i = 0; i < ROW; i++) {
for (int j = 0; j < COL; j++) {
cout << data[i][j] << " ";
}
cout << endl;
}
}
};
int main() {
Array a1, a2, a3, a4;
a2.input();
a3 = a1 + a2;
a4 = a1 - a2;
cout << "a1:" << endl;
a1.print();
cout << "a2:" << endl;
a2.print();
cout << "a1 + a2:" << endl;
a3.print();
cout << "a1 - a2:" << endl;
a4.print();
return 0;
}
```
在上述代码中,首先定义了一个名为Array的类,其中包含一个二维数组data和构造函数Array()、输入函数input()、重载运算符"+"和"-"、输出函数print(),分别用于初始化二维数组、从键盘输入二维数组、实现两个二维数组相加和相减、输出二维数组。
在主函数中,首先定义了四个Array类型的对象a1、a2、a3、a4,其中a1通过构造函数初始化,a2通过input()函数从键盘输入,a3和a4分别通过重载运算符"+"和"-"实现a1和a2的相加和相减。最后,分别输出a1、a2、a3、a4的值。
阅读全文