簡體   English   中英

未解決的外部

[英]Unresolved Externals

我正在研究一個簡單的自上而下的射擊游戲,並希望將我的船只移到一個單獨的ShipManager類,在那里我可以從一個位置管理所有這些。 但是,在啟動時,我的playerShip上出現了一個鏈接器錯誤:

錯誤LNK2001:未解析的外部符號“public:static class 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;

您只聲明了靜態成員,還需要在(僅)一個cpp文件中定義它:

Ship* ShipManager::playerShip;

好讀:
定義和聲明之間有什么區別?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM