读书人

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

发布时间: 2012-08-21 13:00:21 作者: rapoo

关于头文件中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_Hstruct 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的程序里看到了拼写不一致的情况,先排除之。

读书人网 >C++

热点推荐