Language C++

#include 
#include 
using namespace std;
class DynamicIntArray {
  int *p;
  int size;
public:
  DynamicIntArray(int s);
  DynamicIntArray &operator=(DynamicIntArray &ob);
  int &operator[](int i);
};
DynamicIntArray::DynamicIntArray(int s)
{
  p = new int [s];
  if(!p) {
    cout << "Allocation error\n";
    exit(1);
  }
  size = s;
}
// Overload =
DynamicIntArray &DynamicIntArray::operator=(DynamicIntArray &ob)
{
  int i;
  if(size!=ob.size) {
    cout << "Cannot copy arrays of differing sizes!\n";
    exit(1);
  }
  for(i = 0; i   return *this;
}
// Overload []
int &DynamicIntArray::operator[](int i)
{
  if(i <0 || i>size) {
    cout << "\nIndex value of ";
    cout << i << " is out-of-bounds.\n";
    exit(1);
  }
  return p[ i ];
}
int main()
{
  int i;
  DynamicIntArray object1(10), object2(10), object3(100);
  object1[3] = 10;
  i = object1[3];
  cout << i << endl;
  object2 = object1;
  i = object2[3];
  cout << i << endl;
  // generates an error
  object1 = object3; //  arrays differ sizes
  return 0;
}