Например немного Computergame с тремя классами игрока, Бота и игрыКак два класса на C++ могут видеть друг друга?
Игрок имеет метод, который проверяет, если игрок сталкивается с ботом
// Player.h
#include Game.h
#include Bot.h
class Player {
private:
bool collision(Game g) {
for (Bot bot: g.bots)
...
}
};
Bot.h (простыми, причинно него имеет некоторые другие атрибуты, как фактическое положение и до сих пор)
// Bot.h
class Bot {
public:
Bot()
};
Gameclass обрабатывает Gameloop и список Боты
//Game.h
#include Bot.h
#include Player.h
class Game {
public:
Player player:
std::vector<Bot> bots
void loop() { player.collision() }
};
Итак, у нас есть проблема, что Game.h включает Player.h и наоборот.
Как я могу это решить?
Почему player.h включает game.h? В коде, который вы опубликовали, нет причин. Если есть хорошая причина для player.h включить game.h, тогда нам нужно знать, что это такое, прежде чем мы сможем дать решение. – john
Джон, ты прав, спасибо. Я исправил это. Цикл for должен быть в игровом классе, а не в игре. – user2796729