c++中的二维数组有关问题?

c++中的二维数组问题??
我用这种方法定义了一个二维的数组!
int   **ga;
        。。。。。。
    ga       =       new       int*[5];      
                  for(int       i       =       0;       i       <       5;       i++)      
                                    ga[i]       =   new   int   [6];      

                    。。。。。。
void   vect::   put(int   x,   int   y,   int   value)   {
if(x   <   up1   &&   y <   up2)
                ga[x][y]   =   value;               //此行有错
else  
exit(1);

}
上面是数组的赋值函数,但是结果总是提示ga[x][y]   =   value;有错
以下是我的全部代码
求高手解决?
定把分数送给正确搞定的一个人!
#include   <iostream.h>
#include   <stdlib.h>
class   vect   {
          public:
vect();
void     put(int     x,   int     y,     int     value);
int   get(int,   int);

~vect();
  private:
  int   **ga;

  int   up1;
  int   up2;
  int   size;
};

vect::   vect()
{
up1   =   5;  
up2   =   6;
size   =   up1*up2;


              ga       =       new       int*[5];      
                  for(int       i       =       0;       i       <       5;       i++)      
                                    ga[i]       =   new   int   [6];    
}


vect::   ~vect()   {
  for(int     h   =0;   h   <   up2;   h++)      
                    delete       ga[h];      
                    delete       []ga;    
}


int   vect::   get(int   x,   int   y)     {
if(x   <   up1   &&   y <up2)
      return   ga[x][y];
else
      exit(1);
}

void   vect::   put(int   x,   int   y,   int   value)   {
if(x   <   up1   &&   y <   up2)
                ga[x][y]   =   value;
else  
exit(1);

}


void   main()
{
vect   m;
int   i,j;
for(i=0;i <5;i++)               //   数组初始化