   C++ class not being recognised
  In my map.h#ifndef __MAPS_H__#define __MAPS_H__#include "tile.h"#include <vector>class Map{public:Map();~Map();void FreeResources();void SetGeneric(); //setup a generic mapvoid Draw();char *GetName()   {return _filename;}void Load(const char *file);void PlaceTile(Tile *tile, int type, int x, int y);void DeleteTile(int type, int x, int y);void SetDraw(bool draw);private:char _filename[STRING_SIZE];bool _draw;bool _drawGUI;std::vector<Tile> _tiles;};extern Map g_Map;#endifTile is not being recognised by the compiler.tile.h#ifndef __TILE_H__#define __TILE_H__#include "main.h"enum TileType{PATH = 0,WALL = 1};class Tile{public:Tile();void SetBitmap(HBITMAP pic){_image = pic;}void SetFileName(char *name){strcpy(_filename, name);}void SetType(char type){_type = type;} void SetCoords(int x, int y){_coords.x = x; _coords.y = y;}void SetIndex(int x, int y){_index.x = x; _index.y = y;}HBITMAP GetBitmap(){return _image;}char *GetFileName(){return _filename;}char  GetType(){return _type;}POINT GetCoords(){return _coords;}POINT GetIndex(){return _index;}bool Solid(){ return _solid;}// The set function for the tile classvoid SetSolid(bool value){_solid = value;}private:HBITMAP _image;char    _filename[STRING_SIZE];//image to loadchar_type;POINT   _coords;POINT_index;bool_solid; //wall?};#endifI cannot figure out why it saying:Tile: unidentified identifier.syntax error: identifier Tile.   
  Do you have any circular inclusions? What does main.h include?   ;  If main.t is some kind of master include header, you might want to read about how they can bite you.   ;  I had a feeling that was the problem..here's the top of main.h#ifndef __MAIN_H__#define __MAIN_H__#include <windows.h>#include "player.h"#include "gfx.h"#include "input.h"#include "defines.h"#include "logger.h"#include "maps.h"extern HINSTANCE g_hInstance;extern HWND g_hWnd;extern Logger Log;;  I think the problem is tile.h include the main.h, which then tries to include maps.h which then in turn is trying to reference the tile class before it's even been defined.   