【发布时间】:2010-06-18 02:37:46
【问题描述】:
我正在开发一款游戏。我有一个带有两个变量的标题 GameSystem(只是像游戏循环这样的方法,没有类):int mouseX 和 int mouseY。这些在我的游戏循环中更新。现在我想从Game.cpp 文件(由头文件和源文件构建的类)访问它们。所以,我在Game.h 中#include "GameSystem.h"。这样做之后,我得到了很多编译错误。当我删除包含时,他当然会说:
Game.cpp:33: error: ‘mouseX’ was not declared in this scopeGame.cpp:34: error: ‘mouseY’ was not declared in this scope
我想在哪里访问mouseX 和mouseY。
我所有的 .h 文件都有由 Eclipse 生成的 Header Guards。
我正在使用 SDL,如果我删除想要访问变量的行,一切都会编译并完美运行 (*)。
希望你能帮帮我……
这是我#include "GameSystem.h" 时的错误日志(他所指的所有代码都有效,如 (*) 所解释的):
这是尝试访问这两个变量的代码:
SDL_Rect pointer;
pointer.x = mouseX;
pointer.y = mouseY;
pointer.w = 3;
pointer.h = 3;
SDL_FillRect(buffer, &pointer, 0xFF0000);
【问题讨论】:
-
显示相关声明的代码会很有帮助,尤其是错误消息中指定的行。
-
您可能需要显示有问题的代码 (GameSystem.h)。您显示的错误听起来类似于基本的东西,例如缺少分号,但如果没有看到代码,很难猜到。
-
一般来说,header 是用于共享的声明,body 是用于定义。在标题中包含正文通常是避免的,因为在多次使用标题时,您不希望编译相同变量/函数的多个定义。内联和模板是一些例外。