0

我仍在努力弄清楚 C++。我一直在尝试做的是创建某些类的全局实例(控制输入的类存储在全局变量中,控制图形的类存储在全局变量中,控制整个游戏系统的类存储在变量中,等等。 ) 到目前为止,它运行良好。但现在我需要提供来自系统控制器的输入控制器数据的实例。

在我的 game.h 文件(运行主循环和其他一些东西的那个)中,我已经将系统定义为这样

《全球游戏系统》

在game.cpp中,我可以访问一个名为“keyCodes”的变量

在我的 input.cpp 文件中,我包含了 game.h 和 global.h(它不能仅与 game.h 一起使用,所以我想我也会尝试 global.h),我可以看到 gameSystem 的实例,但我无法访问它的 keyCodes 变量。

知道如何解决这个问题吗?当我用 AS3 和 Ruby 编程时,这种事情对我有用。我喜欢它保持东西的模块化方式。所以我真的很想在这个xx中以同样的方式做

4

1 回答 1

0

很难准确地猜出你在做什么。从我的角度来看,我了解您在一个文件中有一个全局变量,并希望在另一个文件中访问它。如果是这种情况,您必须执行以下操作(我将以 an 为例,int但任何其他类型都是相同的。

创建一个File1.h头文件,在其中告诉世界存在一个int名为的全局变量,MyGlobalInt其中包含以下行:

// This is File1.h
extern int MyGlobalInt;

这只是宣布变量存在。它没有声明变量。要声明变量,请在 a 中执行File1.cpp

// This is File1.cpp
#include "File1.h"
int MyGlobalInt;

File1.cpp 声明变量。现在它可以在任何包含File1.h. 例如在File2.cpp

// This is File2.cpp
#include "File1.h"
void ChangeGlobalInt(int newValue)
{
  MyGlobalInt = newValue;
}

在你的情况下,你应该把

extern Whatever_type_you_are_using keyCodes; 

在文件中game.h。文件game.cpp#include "game.h"有效声明keyCodes

#include "game.h"
Whatever_type_you_are_using keyCodes; 

现在,每个包含“game.h”的文件都可以使用keyCodes.

于 2012-08-22T21:29:28.137 回答