title: ERROR: does not name a type
body: <p>I'm implementing a chess game in c++ and some of the classes are "Board" and "Piece".
  There are classes "Rook", "King",... etc inherited from "Piece".</p>
  
  <p>So a board is a 2D array of pieces and so board.h has piece.h included.</p>
  
  <p>For recent development (on implementing moves) I wanted to give the pieces access to the board. 
  so in piece.h I included board.h.</p>
  
  <p>This now creates above error.</p>
  
  <p>Some code:</p>
  
  <pre><code>//Function in piece.h
  #include "board.h"
  bool Piece::move( int toX, int toY, bool enemyPawn, const Board &amp; b )
  </code></pre>
  
  <pre>
  Error: Board does not name a type
  Error: ISO C++ forbids declaration of ‘b’ with no type [-fpermissive]
  </pre>