Hello 在我的 class Bullet
中,当 bullet
未激活时我将 active 声明为 false,当它是时声明为 true。在我的其他 class
中,它没有以任何方式连接到我的 Bullet class
我想使用 bool
成员 active
并更改它,我该怎么做?
我收到错误
错误 18 error LNK2001: 未解析的外部符号“public: static bool Bullet::active” (?active@Bullet@@2_NA) C:\Skolarbete\Programmering i C++\ProjectTemplate\ProjectTemplate\Alienrow.obj ProjectTemplate
声明:static bool active;
当我使用它时:Bullet::active = false;
我也很新 C++
所以不要讨厌!感谢我能得到的所有帮助 :D
最佳答案
类内部的静态变量实际上是一个外部声明。您仍然需要变量定义。这类似于 C 外部变量。
所以在.h文件中:
class Bullet
{
public:
static bool active;
};
在 .cpp 文件中,在全局范围内:
bool Bullet::active = false;
推断缺少变量定义(不是声明),因为您的错误消息实际上来自链接器,而不是编译器。
关于c++ - 使用静态成员变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22648456/