定义一个一维数组类Array,成员数组使用动态内存重载自增和自减运算符实现数组元素的自增和自减,具体要求如下:
#include<iostream>
#include<string>
#include<iomanip>
using namespace std;
class Array
{
private:
int* p;
int n;
public:
Array() {}
Array(int* a,int b)
{
p = a;
n = b;
}
friend void operator ++(Array& arr)
{
int i = 0;
while (i < arr.n)
{
*(arr.p + i) += 1;
i++;
}
}
friend void operator ++(Array& arr,int n)
{
int i = 0;
while (i < arr.n)
{
*(arr.p + i) += 1;
i++;
}
}
friend void operator --(Array& arr)
{
int i = 0;
while (i < arr.n)
{
*(arr.p + i) -= 1;
i++;
}
}
friend void operator --(Array& arr,int n)
{
int i = 0;
while (i < arr.n)
{
*(arr.p + i) -= 1;
i++;
}
}
void print()
{
for (int i = 0; i < n; i++)
cout << setw(4) << *(p + i);
cout << endl;
}
};
int main()
{
int a[7],i=0;
for (i = 0; i < 7; i++)
{
cin >> a[i];
}
Array arr(a, i);
arr.print();
arr++;
arr.print();
arr.print();
arr.print();
arr++;
arr.print();
arr--;
arr.print();
arr.print();
arr.print();
--arr;
arr.print();
}