定义一个一维数组类Array,实现输入运算符<<的重载(功能为输出数组的内容),输 入运算符>>重载(功能为输入数组的内容),并实现以下几个运算符的重载[1、+和功能 为该类对象的指定位置数据的加减运算,通过main函数进
时间: 2024-03-01 20:54:31 浏览: 45
很抱歉,我之前的回答漏掉了一部分内容。以下是完整的代码实现:
```c++
#include <iostream>
using namespace std;
class Array {
private:
int *data;
int size;
public:
Array(int s) {
size = s;
data = new int[size];
}
~Array() {
delete[] data;
}
friend istream& operator>>(istream& input, Array& arr) {
for (int i = 0; i < arr.size; i++) {
input >> arr.data[i];
}
return input;
}
friend ostream& operator<<(ostream& output, const Array& arr) {
for (int i = 0; i < arr.size; i++) {
output << arr.data[i] << " ";
}
output << endl;
return output;
}
int& operator[](int index) {
return data[index];
}
Array operator+(const Array& arr) {
Array result(size);
for (int i = 0; i < size; i++) {
result[i] = data[i] + arr.data[i];
}
return result;
}
Array operator-(const Array& arr) {
Array result(size);
for (int i = 0; i < size; i++) {
result[i] = data[i] - arr.data[i];
}
return result;
}
};
int main() {
Array arr1(5);
Array arr2(5);
cout << "Enter values for Array 1:" << endl;
cin >> arr1;
cout << "Enter values for Array 2:" << endl;
cin >> arr2;
Array arr3 = arr1 + arr2;
cout << "Array 1 + Array 2 = " << arr3;
Array arr4 = arr1 - arr2;
cout << "Array 1 - Array 2 = " << arr4;
return 0;
}
```
需要注意的是,输出运算符<<应该使用const Array&作为参数,以避免改变对象的值。此外,我们还可以将加法和减法运算符重载为成员函数,而不是友元函数。
希望这次的回答能为你提供帮助!
阅读全文