Por lo tanto, espero que esto termine siendo una respuesta simple, pero he estado pirateando por un tiempo, y no puedo para arreglar este problema Así que tengo una clase en particular, Intersection
, que cuando se incluye en cualquier otra cabecera me da:Encabezado creado por el usuario Causa C2061: Error de sintaxis: Identificador 'nombre de clase'
error C2061: syntax error : identifier 'Intersection'
Este es mi cabecera Intersección:
#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
Ahora, si intento utilizar esta clase en otro lugar, obtengo el error. Por ejemplo:
#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
Particularmente en el Road
constructor (y cualquier otras clases que se hace referencia Intersection
). No creo que sea un problema de sintaxis, ya que Coord
es otra clase, definida de la misma manera, y el compilador (VS 2008) no se queja de ello. Es solo Intersection
en particular, lo que me está causando problemas. :/
Lo estoy etiquetando como tarea, es para lo que es, aunque esto no es más que un error del que no me puedo deshacer en lugar de ser parte del problema.
¿Pensamientos?
Parece que necesita reenviar declarar 'clase Intersección;' en el archivo ROAD_H. – GWW
Interesante. Eso parece haberlo hecho. ¿Podría explicar por qué funciona al incluir todo el encabezado no, y por qué solo esa clase parece tener un problema? Hazlo en una respuesta y con mucho gusto te daré el cheque. :) – kcoppock