Я не могу придумать элегантного способа обойти это - лучший выбор - определить функции, которые будут фактически использоваться. Итак, если game.h использует только функцию connect () из socket.h, добавьте эту строку в game.h:
void connect();
И удалите файл socket.h import. Конечно, если сигнатура connect () изменится, вам также нужно помнить об обновлении прямого определения, так что это решение далеко от идеала. Если возможно, измените дизайн, чтобы избежать циклических зависимостей.
Если game.h просто нужно знать о классе в socket.h, определите его следующим образом:
class Socket;
Существуют некоторые оговорки, когда речь идет о встроенных функциях и объектах-членах, см. C ++ FAQ Lite .