关于头文件中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的声明注释掉以后,编译器给的错误还是一样...也就是说,写了根没写一样.....郁闷了,求解
------解决方案--------------------
问题很简单..但是很奇怪,大师求解.某个.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的程序里看到了拼写不一致的情况,先排除之。