title: User-Created Header Causing C2061: Syntax Error : Identifier 'classname'
body: <p>So, I sort of expect this to end up being a simple answer, but I've been hacking at it for a while now, and can't seem to fix this issue. So I have a particular class, <code>Intersection</code>, that when included in any other header gives me:</p>
  
  <p><code>error C2061: syntax error : identifier 'Intersection'</code></p>
  
  <p>This is my Intersection header:</p>
  
  <pre><code>#ifndef INTERSECTION_H
  #define INTERSECTION_H
  
  #include "Coord.h"
  #include "Road.h"
  #include "TrafficLight.h"
  
  class Intersection {
  private:
      int id;
      Coord * midPoint;
      Road * northRoad;
      Road * eastRoad;
      Road * westRoad;
      Road * southRoad;
      TrafficLight * trafficLight;
  public:
      Intersection(int, Coord *, Road *, Road *, Road *, Road *);
      ~Intersection();
      void transitionTrafficLight();
      int getId();
      Road * getNorthRoad();
      Road * getEastRoad();
      Road * getWestRoad();
      Road * getSouthRoad();
      TrafficLight * getTrafficLight();
  };
  
  #endif
  </code></pre>
  
  <p>Now, if I attempt to use this class elsewhere, I get the error. For example:</p>
  
  <pre><code>#ifndef ROAD_H
  #define ROAD_H
  
  #include "Coord.h"
  #include "Intersection.h"
  #include &lt;string&gt;
  
  class Road {
  
  public:
      enum LaneCount { TWO_LANE = 2, FOUR_LANE = 4 };
      Road(std::string, Coord *, Coord *, LaneCount, Intersection *, Intersection *, int);
  //shortened
  </code></pre>
  
  <p>Particularly at the <code>Road</code> constructor (and any other classes which reference <code>Intersection</code>). I don't think it's a syntax problem, as <code>Coord</code> is another class, defined in the same manner, and the compiler (VS 2008) doesn't complain about it. It's just <code>Intersection</code> in particular that's giving me this trouble. :/</p>
  
  <p>I'm tagging it homework -- it's what it's for, even though this is just an error I can't get rid of rather than part of the problem.</p>
  
  <p>Thoughts?</p>