如何声明对象的数组指针? (LNK2001未解决的外部符号"公共:静态类炸弹* *炸弹::炸弹"(?炸弹@炸弹@@ 2PAPAV1 @ A))

时间:2015-08-13 21:16:27

标签: c++ arrays oop

编译程序时遇到错误:

  

LNK2001未解析的外部符号" public:static class Bomb * * Bomb :: bombs" (?炸弹@ @@炸弹@ 2PAPAV1 A)

我知道我必须在static Bomb *bombs[14]中定义.cpp,但我不知道如何。

我的.h文件:

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

我需要在.cpp文件中添加什么内容?

2 个答案:

答案 0 :(得分:1)

缺失的一行是:

Bomb *Bomb::bombs[14];

您需要使用类名对其进行限定,因为它是声明的一部分。此外,您不需要定义中的static部分。

答案 1 :(得分:0)

要使代码编译,只需将Bomb *(Bomb::bombs[size]);添加到代码中(注意Bomb::,因为bombsBomb类的成员。)

但我不认为这是好设计,我相信你在这里有一个逻辑错误。当您尝试创建1 Bomb的实例时,它将拥有一个指向其他Bomb的指针数组,每个指针都包含指向其他Bomb的指针数组,依此类推。

我建议改为创建一个不同的类,可能称为Map,其中一个数组中填充了Bomb个实例。