Problem mit statischem Objekt in Klasse
-
Hallo,
Bei mir tut sich grade ein Problem auf. Der folgende Quellcode:class TerrainSprite { static sf::Image Gras; static sf::Image Wasser; static sf::Image Fels; sf::Sprite Sprite; bool begehbar; bool befahrbar; public: TerrainSprite() { Gras.LoadFromFile("Tiles\\Gras.jpg"); Wasser.LoadFromFile("Tiles\\Wasser.jpg"); Fels.LoadFromFile("Tiles\\Fels.jpg"); } void setSpriteImg(int i) { if(i == 0) { Sprite.SetImage(Gras); begehbar = true; befahrbar = false; } if(i == 1) { Sprite.SetImage(Wasser); begehbar = false; befahrbar = true; } if(i == 2) { Sprite.SetImage(Fels); begehbar = false; befahrbar = false; } } void setSpriteXY(int x, int y) { Sprite.SetPosition(x, y); } };
führt zu diesen Fehlern:
Vc++2008 schrieb:
Verknüpfen...
main.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""private: static class sf::Image TerrainSprite::Fels" (?Fels@TerrainSprite@@0VImage@sf@@A)".
main.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""private: static class sf::Image TerrainSprite::Wasser" (?Wasser@TerrainSprite@@0VImage@sf@@A)".
main.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""private: static class sf::Image TerrainSprite::Gras" (?Gras@TerrainSprite@@0VImage@sf@@A)".
D:\Visual Studio 2008\Projects\TGFS\Debug\TGFS.exe : fatal error LNK1120: 3 nicht aufgelöste externe Verweise.Wisst ihr, was das Problem ist und wie es zu lösen ist?
-
Du musst die statischen objekte nochmals in einer .cpp datei deklarieren, die wirklich kompiliert wird:
sf::Image TerrainSprite::Gras; sf::Image TerrainSprite::Wasser; sf::Image TerrainSprite::Fels;
-
Danke, das hat das Problem gelöst...