标题。 (显示的文件)
我有两个头文件Game.h(声明Game类)和GameMap.h(声明GameMap类)。我正在尝试使GameMap类具有指向实例化它的Game对象的指针,并且Game类存储GameMap对象。
因此,这两个文件相互包含,不会导致任何错误,并且我具有标头保护符。这两个文件都在同一个文件夹中,因此包括它们都没有问题。
问题在于,当我进行编译时,即使它们都被包括在内,两个类都不认为另一个存在。
Game.h
#ifndef GAME_H
#define GAME_H
#include <stdio.h>
#include <SDL2/SDL.h>
#include <vector>
#include "GameMap.h"
class Game
{
public:
Game();
~Game();
int WHEIGHT;
int WWIDTH;
bool game_running;
SDL_Window *gWindow = NULL;
SDL_Renderer *gRenderer = NULL;
SDL_Surface *gSurface = NULL;
GameMap theMap;
int initialise(int HEIGHT, int WIDTH);
void onEvent(SDL_Event event, Uint32 timeElapsed);
//int setupObjects();
int playGame();
void updateDisplay();
};
#endif
GameMap.h
#ifndef MAPCLASS_H
#define MAPCLASS_H
#include "MapTile.h"
#include "GameEntity.h"
#include "Game.h"
#include <vector>
/* map creation
*/
class GameMap
{
public:
GameMap();
GameMap(Game* GAME);
~GameMap();
void updateEntities();
void generateMapRandom(int width, int height);
int setupObjects();
void draw(SDL_Renderer* renderer);
std::vector<std::vector<MapTile*>> levelFloor;
std::vector<GameEntity> entities;
Game* game;
};
#endif
如果您到此为止,则感谢您抽出宝贵的时间阅读我的问题,并感谢您的任何答复:)