静态成员函数中对静态成员变量的未定义引用

时间:2013-08-23 21:26:39

标签: c++

这是我的头文件:

class MapObject: public ScreenObject {
    static float xoffset, yoffset;
public:
    static float Getxoffset() {
        return xoffset;
    }

};

#endif // MAPOBJECT_H

然而就行返回xoffset;我收到以下错误: 未定义的对“MapObject :: xoffset”的引用 为什么呢?

2 个答案:

答案 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;

这样您定义初始化