#include<iostream>
using namespace std;
class myarray
{
int *alist;
int length;
public:
myarray(int leng);
~myarray();
int getlen();
int *getlist();
void input();
void display();
};
class revarray :virtual public myarray{
public:
revarray(int len) :myarray(len){};
void display_and_rev();
};
void revarray::display_and_rev(){
cout<<"Now reverse the elements in the array."<<endl<<"The elements of the array are:"<<endl;
int *temp = new int[getlen()];
int *p = getlist();
for (int i = getlen() - 1; i>= 0; i--){
*(temp + getlen() - i - 1) = *(p + i);
}
for (int i = 0; i < getlen();i++){
*(p + i) = *(temp + i);
}
for (int i = 0; i < getlen(); i++)cout << *(p + i) << " ";
cout <<endl;
cout<<"Bye!"<<endl;
}
int myarray::getlen(){
return length;
}
int* myarray::getlist(){
return alist;
}
myarray::myarray(int leng){
length = leng;
if (leng>0)
alist = new int[leng];
}
myarray::~myarray()
{
if (length>0)
delete[]alist;
else cout << "mistake" <<endl;
alist = NULL;
}
void myarray::input(){
for (int i = 0; i < length; i++)
{cout<<"Enter the "<<i+1<<" element of the array: "<<endl;
cin >> *(alist + i);}
}
void myarray::display(){
cout<<"The elements of the array are:"<<endl;
for (int i = 0; i < length; i++)cout << *(alist + i) << " ";
cout << endl;
}
int main(){
int n;
cout<<"Please enter the length of the array:"<<endl;
cin>>n;
cout<<"Myarray initialize..."<<endl;
cout<<"ReArray initialize..."<<endl;
revarray reve(n);
reve.input();
reve.display();
reve.display_and_rev();
}