c++ - 使用静态成员变量

标签 c++ class members

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/

相关文章:

javascript 改变一些类名

java - 当我可以实现完整的类时,为什么还需要接口(interface)?

c - 将所有结构指针成员设置为 NULL

类中的 C++ 静态成员

C++ 静态成员

c++ - 由于对象的使用方式,我担心这段代码没有按照我想要的方式执行

c++ - 使用 win32 C++ 和 Hook 从应用程序中的按钮获取文本

c# - C/C++ 和 C#/Java 之间 volatile 的用法有什么区别?

C++ 用非静态函数重载静态函数

c++ - C++ 类的 Qt 类数据成员在使用前是否应该初始化?