我正在研究一个简单的自上而下的射击游戏,并希望将我的船只移到一个单独的ShipManager类,在那里我可以从一个位置管理所有这些.但是,在启动时,我的playerShip上出现了一个链接器错误:
错误LNK2001:未解析的外部符号"public:static class Ship*ShipManager :: playerShip"
ShipManager.h如下所示:
class Ship;
class ShipManager
{
public:
static Ship* playerShip;
};
Run Code Online (Sandbox Code Playgroud)
我在ShipManager .cpp中什么都没有.我错过了什么?我使用此代码的唯一其他地方是在我的游戏类中,我实际上正在调用ShipManager :: playerShip,我没有在那里得到任何错误.
我在我的game.cpp中包含"ShipManager.h",所以应该找到它吗?我有一种感觉,我在这堂课中忘记了一些简单的事情.
必须在某处定义静态成员.你在声明playerShip
,但没有定义它.您需要添加某个地方,必须只添加一个cpp文件:
Ship* ShipManager::playerShip;
Run Code Online (Sandbox Code Playgroud)