Я - разработчик игр, и я хочу сделать простую платформенную игру на C++. Проблема в том, что когда я делаю два класса (игра и графика), я не могу включить Game.h в Graphics.h, потому что я уже включил Graphics.h в Game.h. Кто-нибудь может мне помочь? код: Game.h:C++ include loop
#pragma once
#include "Graphics.h"
struct Game {
Game();
void init();
void handle();
bool running;
Graphics g;
};
graphics.h:
#pragma once
#include <SDL.h>
struct Graphics {
SDL_Surface* screen;
void init();
void rect(SDL_Rect rect, Uint32 color);
void rect(SDL_Rect rect, int r, int g, int b);
void rect(int x, int y, int w, int h, Uint32 color);
void rect(int x, int y, int w, int h, int r, int g, int b);
void render(Game* game);
};
Избегайте как можно большего добавления #includes .h файлов, помещайте наиболее используемый заголовок в общий файл .h (я вызываю мой PCH.h) и включаю этот заголовок в начале каждого файла cpp и поворачиваю на предварительно скомпилированных заголовках из вашей IDE или создать скрипт. Это может показаться сложным, но в конечном итоге это сэкономит вам массу проблем. –
нет причин действительно иметь один заголовок для каждого класса. – mcr619619
Будьте осторожны с этой общей идеей заголовка: по моему опыту, он быстро выходит из-под контроля и заканчивается с множеством ненужных зависимостей. В общем, включите то, что вам нужно, и только то, что вам нужно. – juanchopanza