Header file imports acting strangely
<blockquote>
  <p><strong>Possible Duplicate:</strong><br>
  <a href="http://stackoverflow.com/questions/6573878/circular-dependencies-with-headers-using-ifndef-and-define">Circular dependencies with headers. Using #ifndef and #define</a>  </p>
</blockquote>



<p>I try to import a header file that contains a class that extends to class in that header file and it doesn't work :S</p>

<p>TileGrass.h:</p>

<pre><code>#ifndef TILEGRASS_H_
#define TILEGRASS_H_

#include "Tile.h"

class TileGrass : public Tile
{
    public:
        TileGrass(unsigned char);
};

#endif /* TILEGRASS_H_ */
</code></pre>

<p>Tile.h:</p>

<pre><code>#ifndef TILE_H_
#define TILE_H_

class Tile
{
    public:
        Tile(unsigned char);
        unsigned char id;
};

#include "TileGrass.h"

extern Tile* tiles[256];
TileGrass tileGrass = TileGrass(0);

#endif /* TILE_H_ */
</code></pre>

<p>Doing this gives me the error:
error: 'TileGrass' does not name a type</p>
