Visual c++ c+中的静态类成员+;

Visual c++ c+中的静态类成员+;,visual-c++,static,member,Visual C++,Static,Member,我试图从NeHe.gamedev.net获取窗口制作代码,并将其转换为一个类,以便更轻松地使用它,我遇到了一个问题。WndProc方法需要声明为static I read,这当然意味着其中使用的变量需要是静态的。但是当我在头文件中这样声明它们时 private: static bool keys[256]; //for key events static bool active; static bool fullscreen; 我得到一个错误,说他们是未声明

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

private:

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

我得到一个错误,说他们是未声明的外部。我是个新的C++,那么我缺了什么?谢谢

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

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

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

几秒钟后就回答了我自己的问题。但为了以防万一,我将引用我找到答案的站点“类的成员列表中静态数据成员的声明不是定义。必须在类声明之外的命名空间范围中定义静态成员。”基本上,它们需要在.cpp文件中定义为classname::membername=something.Awesome,这证实了我读到的内容。我想投你一票,但我不能:(。我确实认为这很有帮助。