如何管理多个文件,全局变量和定义

时间:2012-11-22 05:30:17

标签: c++ class header include

我有两个类,类“实体和类”tile“。

类“实体”具有一些使用“tile”类型的全局数组的成员函数。它还使用了一些定义的数字。

类“tile”包含一个成员变量,它是指向“entity”类型的指针。

我想将这些类分成各种.h文件。我将尝试重组它,但我想知道是否可以这样做。

所以,再一次,为了清楚起见:

“entity”使用“tile”类型的全局2d数组

“tile”使用

有没有办法将它分成三个.h文件(每个类一个,所有全局变量和定义一个)?

谢谢!

2 个答案:

答案 0 :(得分:2)

我不明白为什么你需要三个 .h 文件。只需为每个类创建一个单元,并将全局放入 Entity 的模块中(我不认为你可以避免使用全局变量)。

Entity.h

class Entity
{
<...>
};

Entity.cpp

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

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

Tile.h

#include "Entity.h"

class Tile
{
    <...>
    Entity * ptr;//here's your pointer
};

答案 1 :(得分:1)

我认为你只需要在类Entity上进行前向声明?

tile.h:

class Entity;

class Tile {
     Entity *entity;
      ...
}

entity.h:

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

class Entity {
    ...
}

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];