title: Cross reference and circular dependency. Header including itself indirectly
body: <p>placeable.h</p>
  
  <pre><code>#include "selectable.h"
  
  class placeable : selectable
  {
  ..
  };
  </code></pre>
  
  <p>selectable.h</p>
  
  <pre><code>#include "game.h"
  
  
  class selectable
  {
  ..
  };
  </code></pre>
  
  <p>game.h</p>
  
  <pre><code>#include "placeable.h"
  
  class game
  {
  ...
  class placeable* holding;
  ...
  };
  </code></pre>
  
  <p>Basically placeable.h includes selectable.h which includes game.h which includes placeable.h again.</p>
  
  <p>The only solution i can think of is placing the placeable* in a new header, making it static/global and then include this new header in game.h and selectable.h.</p>
  
  <p>I'm sorry i dint include header guards in the upper code. I assumed it was obvious.
  Header guards does not help in this case because of the inheritance, same thing goes with forward declaring.</p>