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

あなたがしていることを正確に推測するのは難しいです。私の観点からは、あるファイルにグローバル変数があり、別のファイルでそれにアクセスしたいと考えていることを理解しています。その場合は、次のことを行う必要があります(例を示しますintが、他のタイプも同じです。

次の行で、namedという名前のグローバル変数が存在するFile1.hことを世界に伝えるヘッダーファイルを作成します。intMyGlobalInt

// This is File1.h
extern int MyGlobalInt;

これは、変数が存在することを通知するだけです。変数を宣言しません。変数を宣言するには、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 に答える