Созданный пользователем заголовок, вызывающий C2061: синтаксическая ошибка: идентификатор «имя класса»

Итак, я ожидаю, что это будет простой ответ, но я уже некоторое время взламывал его и, похоже, не могу решить эту проблему. Поэтому у меня есть определенный класс, Intersection, который при включении в любой другой заголовок дает мне:

error C2061: syntax error : identifier 'Intersection'

Это мой заголовок пересечения:

#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

Теперь, если я попытаюсь использовать этот класс в другом месте, я получу ошибку. Например:

#ifndef ROAD_H
#define ROAD_H

#include "Coord.h"
#include "Intersection.h"
#include <string>

class Road {

public:
    enum LaneCount { TWO_LANE = 2, FOUR_LANE = 4 };
    Road(std::string, Coord *, Coord *, LaneCount, Intersection *, Intersection *, int);
//shortened

Особенно в конструкторе Road (и любых других классах, которые ссылаются на Intersection). Я не думаю, что это проблема синтаксиса, поскольку Coord - это другой класс, определенный таким же образом, и компилятор (VS 2008) не жалуется на это. Это просто Intersection, в частности, это доставляет мне эту проблему. : /

Я отмечаю это как домашнее задание - для этого оно и нужно, хотя это просто ошибка, от которой я не могу избавиться, а не часть проблемы.

Мысли?

8
задан kcoppock 29 June 2011 в 02:27
поделиться