我正在研究一个简单的自上而下的射手,并且想将我的飞船移动到单独的ShipManager类,在这里我可以从一个位置管理所有飞船。但是,启动此操作后,我的playerShip上出现链接器错误:

错误LNK2001:无法解析的外部符号“public:静态类Ship * ShipManager::playerShip”

ShipManager.h看起来像这样:

class Ship;

class ShipManager
{
public:
static Ship*    playerShip;
};

我在ShipManager .cpp中什么都没有。我想念什么?我在此游戏类中唯一使用此代码的地方是我实际上在调用ShipManager::playerShip的地方,那里没有任何错误。

我在我的game.cpp中包含“ShipManager.h”,所以应该找到正确的名称吗?我感觉自己在这节课中忘记了一些简单的事情。

最佳答案

静态成员必须在某处定义。您在声明playerShip,但未定义它。您只需要在某处添加一个cpp文件:

Ship* ShipManager::playerShip;

10-04 20:21