这是我的头文件:
class MapObject: public ScreenObject {
static float xoffset, yoffset;
public:
static float Getxoffset() {
return xoffset;
}
};
#endif // MAPOBJECT_H
然而就行返回xoffset;我收到以下错误: 未定义的对“MapObject :: xoffset”的引用 为什么呢?
答案 0 :(得分:7)
将它放在源文件中(通过它的外观MapObject.cpp
)
#include "MapObject.h"
float MapObject::xoffset = 0;
float MapObject::yoffset = 0;
//... the rest of your MapObject code here...
在C ++中,非const static
成员必须在类定义中声明,并且定义并使用全局作用域来正确地为链接器提供引用的内容。
答案 1 :(得分:1)
您必须在MapObject.cpp
:
float MapObject::xoffset = 0.0f;
float MapObject::yoffset = 0.0f;
这样您定义并初始化。