0

我正在尝试从 NeHe.gamedev.net 获取窗口制作代码并将其转换为一个类,以便我可以更轻松地使用它,但我遇到了问题。WndProc 方法需要声明为我阅读的静态,这当然意味着其中使用的变量需要是静态的。但是当我在头文件中这样声明它们时

private:

static bool keys[256];                  //for key events
static bool active;
static bool fullscreen;

我收到一个错误,说它们是未声明的外部。我对 c++ 很陌生,所以我错过了什么?谢谢!

4

1 回答 1

2

静态值也必须在实现文件中声明。在您的 .cpp 文件中,您应该具有以下内容:

bool MyClass::keys[256];
bool MyClass::active;
bool MyClass::fullscreen;

问题是,如果没有在实现文件中的某个地方声明,编译器就没有好地方来存储静态变量。

于 2012-06-08T00:21:07.660 回答