定义一个一维数组类Array,实现输入运算符<<的重载(功能为输出数组的内容),输入运算符>>重载(功能为输入数组的内容),并实现以下几个运算符的重载[]、+和-功能为该类对象的指定位置数据的加减运算,通过main函数进行验证
时间: 2024-03-01 13:55:09 浏览: 13
好的,我来为您编写一个符合要求的一维数组类Array的实现。
```c++
#include <iostream>
using namespace std;
class Array {
private:
int *arr;
int size;
public:
Array(int n) {
size = n;
arr = new int[size];
}
friend ostream &operator<<(ostream &out, const Array &a) {
for (int i = 0; i < a.size; i++) {
out << a.arr[i] << " ";
}
return out;
}
friend istream &operator>>(istream &in, Array &a) {
for (int i = 0; i < a.size; i++) {
in >> a.arr[i];
}
return in;
}
int &operator[](int index) {
if (index >= 0 && index < size) {
return arr[index];
} else {
cout << "Index out of bounds!" << endl;
exit(1);
}
}
Array operator+(const Array &a) {
if (size != a.size) {
cout << "Arrays have different sizes!" << endl;
exit(1);
}
Array res(size);
for (int i = 0; i < size; i++) {
res.arr[i] = arr[i] + a.arr[i];
}
return res;
}
Array operator-(const Array &a) {
if (size != a.size) {
cout << "Arrays have different sizes!" << endl;
exit(1);
}
Array res(size);
for (int i = 0; i < size; i++) {
res.arr[i] = arr[i] - a.arr[i];
}
return res;
}
~Array() {
delete[] arr;
}
};
int main() {
Array a1(5), a2(5);
cout << "Input array a1:" << endl;
cin >> a1;
cout << "Input array a2:" << endl;
cin >> a2;
cout << "a1: " << a1 << endl;
cout << "a2: " << a2 << endl;
cout << "a1[2] + a2[3] = " << a1[2] + a2[3] << endl;
cout << "a1[0] - a2[4] = " << a1[0] - a2[4] << endl;
Array a3 = a1 + a2;
Array a4 = a1 - a2;
cout << "a1 + a2 = " << a3 << endl;
cout << "a1 - a2 = " << a4 << endl;
return 0;
}
```
这里定义了一个一维数组类Array,重载了输入运算符<<和输入运算符>>,以及运算符[]、+和-。在main函数中,我们创建了两个Array类型的对象a1和a2,通过重载的输入运算符>>为它们赋值,接着输出a1和a2的值,以及它们指定位置数据的加减运算结果。最后,我们创建了两个新的Array类型的对象a3和a4,分别存储a1和a2的加减结果,并对它们进行输出。
希望这个例子能够帮助您理解一维数组类Array的实现。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)