根据(2) 用友元函数函数重载运算符“+”和“-”,将两个二维数组相加和相减的要求,用C++补全下列代码int main() { array X(11,22,33,44,55,66); array Y,Z; Y.get_array(); cout<<"Display object X"<<endl; X.display(); cout<<"Display object Y"<<endl; Y.display(); Z=X+Y; cout<<"Display object Z=X+Y"<<endl; Z.display(); Z=X-Y; cout<<"Display object Z=X-Y"<<endl; Z.display(); return 0; }
时间: 2024-03-05 16:53:58 浏览: 86
C++运算符重载 成员函数与友元函数详解
5星 · 资源好评率100%
下面是补全后的代码:
```c++
#include <iostream>
using namespace std;
class array {
private:
int arr[6];
public:
array() {}
array(int a, int b, int c, int d, int e, int f) {
arr[0] = a;
arr[1] = b;
arr[2] = c;
arr[3] = d;
arr[4] = e;
arr[5] = f;
}
void get_array() {
cout << "Enter 6 integers for array Y: ";
for (int i = 0; i < 6; i++) {
cin >> arr[i];
}
}
void display() {
for (int i = 0; i < 6; i++) {
cout << arr[i] << " ";
}
cout << endl;
}
friend array operator+(const array& a1, const array& a2) {
array res;
for (int i = 0; i < 6; i++) {
res.arr[i] = a1.arr[i] + a2.arr[i];
}
return res;
}
friend array operator-(const array& a1, const array& a2) {
array res;
for (int i = 0; i < 6; i++) {
res.arr[i] = a1.arr[i] - a2.arr[i];
}
return res;
}
};
int main() {
array X(11, 22, 33, 44, 55, 66);
array Y, Z;
Y.get_array();
cout << "Display object X" << endl;
X.display();
cout << "Display object Y" << endl;
Y.display();
Z = X + Y;
cout << "Display object Z=X+Y" << endl;
Z.display();
Z = X - Y;
cout << "Display object Z=X-Y" << endl;
Z.display();
return 0;
}
```
在这段代码中,`array` 是一个包含了 6 个 `int` 类型元素的类。在 `main` 函数中,我们首先创建了一个 `array` 对象 `X`,并用给定的 6 个参数进行初始化。接着,我们调用 `get_array` 函数从标准输入中获取另一个 `array` 对象 `Y`。然后,我们分别输出 `X` 和 `Y` 对象的内容。
接下来,我们用运算符重载实现了 `+` 和 `-` 运算符,用于对两个 `array` 对象进行相加和相减操作。这里的重载函数都是 `friend` 函数,所以可以直接访问 `array` 类的私有成员变量。`operator+` 和 `operator-` 函数都返回了一个 `array` 类型的对象,表示相加或相减后的结果。
最后,我们用重载后的运算符对 `X` 和 `Y` 进行了相加和相减操作,并将结果保存到 `Z` 对象中。然后,我们分别输出 `Z` 对象的内容,以验证运算符重载的正确性。
阅读全文