0

这是我的头文件:

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

};

#endif // MAPOBJECT_H

然而就行 return xoffset; 我收到以下错误:undefined reference to `MapObject::xoffset' 为什么?

4

2 回答 2

7

把它放在一个源文件中(看起来MapObject.cpp

#include "MapObject.h"

float MapObject::xoffset = 0;
float MapObject::yoffset = 0;


//... the rest of your MapObject code here...

在 C++ 中,非 conststatic成员必须在类定义中声明并在全局范围内定义,以正确地为链接器提供可引用的内容

于 2013-08-23T21:33:32.947 回答
1

你必须有这样的东西在你的MapObject.cpp

float MapObject::xoffset = 0.0f;
float MapObject::yoffset = 0.0f;

这样您就可以定义初始化它们。

于 2013-08-23T21:33:17.040 回答