0

クラス「エンティティ」とクラス「タイル」の2つのクラスがあります。

クラス「エンティティ」には、タイプ「タイル」のグローバル配列を使用するいくつかのメンバー関数があります。また、いくつかの定義された数値も使用します。

クラス「タイル」には、タイプ「エンティティ」へのポインターであるメンバー変数が含まれています。

クラスをさまざまな .h ファイルに分けたい。再構築を試みますが、これが可能かどうか知りたいです。

繰り返しますが、明確にするために:

「エンティティ」は、タイプ「タイル」のグローバル 2 次元配列を使用します

「タイル」の用途

これを 3 つの .h ファイル (各クラスに 1 つ、すべてのグローバル変数と定義に 1 つ) に分割する方法はありますか?

ありがとう!

4

2 に答える 2

2

なぜ 3 つの.hファイルが必要なのかわかりません。各クラスのユニットを作成し、グローバルをEntityのモジュールに入れるだけです (グローバルを避けることができるとは言いません)。

Entity.h

class Entity
{
<...>
};

エンティティ.cpp

#include "Entity.h"
#include "Tile.h"

Tile array[100];//here's your array

タイル.h

#include "Entity.h"

class Tile
{
    <...>
    Entity * ptr;//here's your pointer
};
于 2012-11-22T05:38:43.720 に答える
1

クラスEntityの前方宣言が必要だと思いますか?

tile.h:

class Entity;

class Tile {
     Entity *entity;
      ...
}

エンティティ.h:

//#include "tile.h" - add this back if you need to refer to tile in Entity defn

class Entity {
    ...
}

エンティティ.cpp

#include "entity.h"
// Remove the following or put in proper include protection if you uncomment the 
// include above
#include "tile.h"

Tile gbl[10][10];
于 2012-11-22T05:46:40.330 に答える