これは単純な回答に終わると期待していますが、今はしばらくハッキングしているようですこの問題を解決するC2061でユーザー作成のヘッダーが発生する:構文エラー:識別子 'classname'
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
、私はこのクラスを使用しようとすると、だから私は、他のヘッダに含まが私を与えたときに、Intersection
、特定のクラスを持っています他の場所では、エラーが発生します。例えば:
#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
というのは私にこの問題を与えているだけです。 :/
私はそれを宿題とタグ付けしています。これはそれが問題ですが、これは単なるエラーではありますが、問題の一部ではなく取り除くことはできません。
思考?
ROAD_Hファイルで 'class Intertersection; 'を宣言する必要があるようです。 – GWW
興味深い。それはそれをしたようだ。ヘッダー全体を含めても動作しない理由と、そのクラスだけに問題があるように見える理由を説明できますか?答えでそれをしてください、私は喜んであなたにチェックを与えるでしょう。 :) – kcoppock