
#include "iostream.h"

const int ArraySize = 24;
const int SZ = 10;

class IntArray {
public:
   IntArray (int sz = ArraySize);
   IntArray (const IntArray &);
   ~IntArray() {delete ia;};
   IntArray & operator=(const IntArray &);
   int & operator[](int);
   int getSize() {return size;};
private:
   int size; int *ia;};


IntArray::IntArray (int sz)
{  size = sz;
   ia = new int [size];
   for (int i=0; i< sz; ++i)
	  ia[i]=0; }

IntArray::IntArray(const IntArray &iA)
{  size = iA.size;
   ia = new int [size];
   for (int i=0;i<size;++i)
	  ia[i]=iA.ia[i]; }

IntArray & IntArray::operator=(const IntArray &iA)
{  delete ia;
   size = iA.size;
   ia = new int [size];
   for (int i=0;i< size;++i)
	  ia[i]=iA.ia[i];
   return *this; }

int & IntArray::operator[](int index)
{  return ia[index];}

main()
{
   int mySize=20;
   int ia[SZ];
   IntArray myArray(mySize), iA(SZ);
   IntArray *pA=&myArray;
   IntArray iA2;

   iA[3] = 4;
   iA2[2] = iA[3];
   cout<<iA2[2]<<"\n";

   IntArray iA3=iA2;

   cout<<iA3.getSize()<<"\n";
   cout<<iA3[2]; }

   
