#include <iostream>
#include <new>
#include <cstdlib>
using namespace std;
class array {
int *p;
int size;
public:
array(int sz) {
try {
p = new int[sz];
} catch (bad_alloc xa) {
cout << "Allocation Failure\n";
exit(EXIT_FAILURE);
}
size = sz;
}
~array() { delete [] p; }
// Copy Constructor
array(const array &a) {
int i;
try {
p = new int[a.size];
} catch (bad_alloc xa) {
cout << "Allocation Failure\n";
exit(EXIT_FAILURE);
}
for(i=0; i<a.size; i++) p[i] = a.p[i];
}
void put(int i, int j) {
if(i>=0 && i<size) p[i] = j;
}
int get(int i) {
return p[i];
}
};
int main()
{
array num(10);
for(int i=0; i<10; i++)
num.put(i, i);
for(int i=9; i>=0; i--)
cout << num.get(i);
cout << "\n";
array x(num); // invokes copy constructor
for(int i=0; i<10; i++)
cout << x.get(i);
return 0;
}
9876543210
0123456789"