我正在尝试从NeHe.gamedev.net获取窗口代码并将其转换为类,以便我可以更轻松地使用它,而且我遇到了一个问题。 WndProc方法需要声明为静态读取,这当然意味着其中使用的变量需要是静态的。但是当我在头文件
中声明它们时private:
static bool keys[256]; //for key events
static bool active;
static bool fullscreen;
我得到一个错误,说他们是未申报的外部人员。我对c ++很新,所以我错过了什么?谢谢!
答案 0 :(得分:2)
还必须在实现文件中声明静态值。在你的.cpp文件中你应该有:
bool MyClass::keys[256];
bool MyClass::active;
bool MyClass::fullscreen;
问题是,如果没有在实现文件中的某个地方声明,编译器就没有把存储放在静态变量中的好地方。