我对http://www.sfml-dev.org/tutorials/1.6/graphics-sprite.php上的代码有点困惑
即底部详细说明“导弹”类的代码:
class Missile
{
public :
static bool Init(const std::string& ImageFile)
{
return Image.LoadFromFile(ImageFile);
}
Missile()
{
Sprite.SetImage(Image); // every sprite uses the same unique image
}
private :
static sf::Image Image; // shared by every instance
sf::Sprite Sprite; // one per instance
};
我正在尝试使用“Init”将文件加载到类的私有图像成员中。我正在尝试这样做:
if (!Missile::Init("missile.bmp")) return EXIT_FAILURE;\
然后继续声明该类的对象。然而,我越来越长,冗长的错误让我认为我不应该在那里放一个字符串,或者我错过了一些基本的东西。我对 C++ 有点陌生,所以语法仍然让我感到困惑,我已经看了很长时间,但无法弄清楚。我试过调用指针等,但我真的不知道下一步该做什么。
编辑:我得到的错误是:
main.o: 在函数 Ship::Init(std::basic_string, std::allocator > const&): main.cpp:(.text._ZN4Ship4InitERKSs[Ship::Init(std::basic_string, std::allocator > const&) )]+0x10):对 Ship::Image 的未定义引用 main.o:在函数 Ship::Ship():main.cpp:(.text._ZN4ShipC2Ev[_ZN4ShipC5Ev]+0x19):对 Ship::Image 的未定义引用