编译程序时遇到错误:
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文件中添加什么内容?
答案 0 :(得分:1)
缺失的一行是:
Bomb *Bomb::bombs[14];
您需要使用类名对其进行限定,因为它是声明的一部分。此外,您不需要定义中的static
部分。
答案 1 :(得分:0)
要使代码编译,只需将Bomb *(Bomb::bombs[size]);
添加到代码中(注意Bomb::
,因为bombs
是Bomb
类的成员。)
但我不认为这是好设计,我相信你在这里有一个逻辑错误。当您尝试创建1 Bomb
的实例时,它将拥有一个指向其他Bomb
的指针数组,每个指针都包含指向其他Bomb
的指针数组,依此类推。
我建议改为创建一个不同的类,可能称为Map
,其中一个数组中填充了Bomb
个实例。