placeable.h
#include "selectable.h"
class placeable : selectable
{
..
};
selectable.h
#include "game.h"
class selectable
{
..
};
game.h
#include "placeable.h"
class game
{
...
class placeable* holding;
...
};
В основном placeable.h включает selectable.h, который включает game.h, который снова включает placeable.h.
Единственное решение, о котором я могу подумать, - это поместить помещаемый * в новый заголовок, сделать его статическим / глобальным, а затем включить этот новый заголовок в game.h и selectable.h.
Извините, я не включил охрану заголовков в верхний код. Я предположил, что это было очевидно.
Охрана заголовка в этом случае не помогает из-за наследования, то же самое относится и к объявлению вперед.