为何定义了的变量还显示未定义标识符,该怎么处理

为何定义了的变量还显示未定义标识符
我在Grid.h中定义了一个类,其成员:
class Grid
{
public:
  Grid( ID3D10Device* pD3DDevice );
  virtual ~Grid( void );

int dim[3];
int maxDim;

HRESULT InitGrid(int gridWidth, int gridHeight, int gridDepth,ID3D10EffectTechnique* technique);
......

protected:
  int texCols;
  int texRows;
  ......
}
但是在Grid.cpp中写InitGrid函数时dim、maxDim、texCols、texRows这些变量都说是“未定义标示符”
函数如下:
HRESULT InitGrid( int gridWidth, int gridHeight, int gridDepth,ID3D10EffectTechnique* technique )
{
  HRESULT hr;

  dim[0] = gridWidth;
  dim[1] = gridHeight;
  dim[2] = gridDepth;

  maxDim = max( max( dim[0], dim[1] ), dim[2] );

  ComputeRowColsForFlat3DTexture(dim[2], &texCols, &texRows);
  ......
}
Grid.cpp开头已经包含了Grid.h了,而且诡异的是再其他函数里这些变量都能正常访问
请问各位大虾这是怎么一回事
用的VS2010



------解决方案--------------------
cpp中应改成 HRESULT Grid::InitGrid(...)