关于头文件中struct与class的有关问题

关于头文件中struct与class的问题
问题很简单..但是很奇怪,大师求解.某个.h头文件中内容如下
#ifndef DATA_H
#define DATA_H

struct ParticularData
{
  float x;
  float y;
};

class Data
{
  public:
  Data();
  virtual ~Data();
  float GetA() { return A; }
  void SetA(float val) { A = val; }
  float GetB() { return B; }
  void SetB(float val) { B = val; }
  float GetR() { return R; }
  void SetR(float val) { R = val; }
  float GetAver() { return Aver; }
  void SetAver(float val) { Aver = val; }
  float GetDev() { return Dev; }
  void SetDev(float val) { Dev = val; }
  float* GetNormalData() { return NormalData; }
  void SetNormalData(float* val) { NormalData = val; }
  ParticularData* GetLineFitData() { return LineFitData; }问题点
  void SetLineFitData(ParticularData* val) { LineFitData = val; }//问题点

  void Reset();
  protected:
  private:
  float A;
  float B;
  float R;
  float Aver;
  float Dev;
  float* NormalData;
  PaticularData* LineFitData;//问题点
};

#endif // DATA_H

文件中的内容很简单,就是一个简单的类,在编译的时候编译器报错提示说ParicularData是个未声明的类型,但问题是...他就上面声明了,更奇怪的事,把上面关于Particular的声明注释掉以后,编译器给的错误还是一样...也就是说,写了根没写一样.....郁闷了,求解

------解决方案--------------------
C/C++ code

#ifndef DATA_H
#define DATA_H

struct ParticularData//是一个结构体名
{
  float x;
  float y;
};
typedef ParticularData * P;//定义一个结构体类型
class Data
{
  public:
  Data();
  virtual ~Data();
  float GetA() { return A; }
  void SetA(float val) { A = val; }
  float GetB() { return B; }
  void SetB(float val) { B = val; }
  float GetR() { return R; }
  void SetR(float val) { R = val; }
  float GetAver() { return Aver; }
  void SetAver(float val) { Aver = val; }
  float GetDev() { return Dev; }
  void SetDev(float val) { Dev = val; }
  float* GetNormalData() { return NormalData; }
  void SetNormalData(float* val) { NormalData = val; }
  P GetLineFitData() { return LineFitData; }//问题点
  void SetLineFitData(P val) { LineFitData = val; }//问题点

  void Reset();
  protected:
  private:
  float A;
  float B;
  float R;
  float Aver;
  float Dev;
  float* NormalData;
  P LineFitData;//问题点
};

#endif // DATA_H

------解决方案--------------------
PaticularData* LineFitData;//问题点
ParticularData写错了,少写了个r
------解决方案--------------------
PaticularData* LineFitData;//问题点
打错了吧 

是ParticularData 少个r
------解决方案--------------------
“ParticularData* GetLineFitData() { return LineFitData; }问题点” 这儿没加注释符号
“PaticularData* LineFitData;//问题点” 这儿 PaticularData写错了


------解决方案--------------------
在LZ的程序里看到了拼写不一致的情况,先排除之。