Data Structure C++

#include 
#include 
using namespace std;
class MyArray {
  int isize, jsize;
  int *p;
public:
  MyArray(int i, int j);
  int &put(int i, int j);
  int get(int i, int j);
};
MyArray::MyArray(int i, int j)
{
  p = new int [i*j];
  if(!p) {
    cout << "Allocation error\n";
    exit(1);
  }
  isize = i;
  jsize = j;
}
int &MyArray::put(int i, int j)
{
  if(i <0 || i>=isize || j<0 || j>=jsize) {
    cout << "Bounds error!!!\n";
    exit(1);
  }
  return p[i*jsize + j];
}
int MyArray::get(int i, int j)
{
  if(i <0 || i>=isize || j<0 || j>=jsize) {
    cout << "Bounds error!!!\n";
    exit(1);
  }
  return p[i*jsize +j]; 
}
  
int main()
{
  MyArray a(2, 3);
  int i, j;
  for(i = 0; i <2; i++)
    for(j=0; j<3; j++)
      a.put(i, j) = i+j;
  for(i = 0; i <2; i++)
    for(j=0; j<3; j++)
      cout << a.get(i, j) << ' ';
  a.put(10, 10);
  return 0;
}