2015-08-13 32 views
0

編譯我的程序時,我得到了一個錯誤:如何聲明對象的數組指針? (LNK2001解析的外部符號 「公用:靜態類炸彈*彈::彈」(炸彈@炸彈@@ 2PAPAV1 @ A)?)

LNK2001無法解析的外部符號「市民:靜態類炸彈*彈::彈」

我知道,我在我的.cpp定義static Bomb *bombs[14],但我不知道如何(炸彈@炸彈@@ 2PAPAV1 @阿?) 。

.h文件:

class Bomb { 
public: 
static Bomb *bombs[14]; 
static int num_bombs; 
... 

什麼,我需要在我的.cpp文件添加?

+0

「炸彈」應該是一個二維數組嗎? – bpgeck

+0

@bpgeck nope。我只想要炸彈對象的數組指針 – user2321517

+1

只是'炸彈*炸彈::炸彈[14];'到您的cpp文件。 – twentylemon

回答

1

的缺失行是:

Bomb *Bomb::bombs[14]; 

您需要使用類名來限定它,因爲它是聲明的一部分。另外,您不需要定義中的static部分。

0

爲了使你的代碼編譯只需添加Bomb *(Bomb::bombs[size]);到您的代碼(注意,因爲bombsBomb::Bomb類的成員)。

不過,我不認爲這是很好的設計,我相信你在這裏有一個邏輯上的錯誤。當您嘗試創建的1 Bomb一個實例,它會具有指針數組到其他Bomb s,這將分別包含對其他Bomb S和等指針數組。

我會建議改爲創建一個不同的類,也許稱爲Map,其中有一個數組填充了Bomb實例。

+1

你錯過了完整的知識塊來做出判斷。指向對象的指針數組沒有任何問題。 – Blindy