내 C++ 코드에 문제가 있습니다. 나는 "{ '토큰"앞에 클래스 이름이 예상되지만, 아직 내가 가지고있는 곳을 찾을 수 없다는 많은 조언이 있다는 것을 알고 있습니다. 이 체코의, 내 영어와 클래스의 이름과 변수의 이름'{'토큰 앞에 예상 클래스 이름이 있습니다. C++
#ifndef __GrafickyObjekt_h__
#define __GrafickyObjekt_h__
#include "HerniEngine.h"
#include "Pozice.h"
#include "Posun.h"
class HerniEngine;
class GrafickyObjekt;
class Scena;
struct Pozice;
struct Posun;
class HerniEngine;
class GrafickyObjekt {
protected:
Pozice m_pozice;
public:
HerniEngine* m_HerniEngine;
// kazdy potomek, tj. graf. obj. ma pozici
GrafickyObjekt(Pozice pozice);
// vsichni potomci ji musi implementovat
virtual void vykresli() = 0;
// tyto metody nejsou (ciste) virtualni, budou normalne zdedeny
// tim mam zaruceno, ze vsichni potomci je maji
void pohni(Posun posun);
void pohni(Pozice pozice);
};
#endif
죄송합니다
Postava.h
#include <exception>
#include <string>
using namespace std;
#ifndef __Postava_h__
#define __Postava_h__
#include "Barva.h"
#include "Pozice.h"
//#include "Budova.h"
//#include "HerniEngine.h"
#include "GrafickyObjekt.h"
class Budova;
class HerniEngine;
//class GrafickyObjekt;
class Postava;
struct Barva;
struct Pozice;
class Postava:public GrafickyObjekt{ //<----- Here is the error
private:
std::string m_jmeno;
int m_nosnost;
public:
Postava(std::string jmeno, int nosnost);
Budova* m_Budova;
HerniEngine* m_HerniEngine;
std::string vratJmeno();
int vratNosnost();
void vykresli();
};
#endif
GrafickyObjekt.h : 여기 내 소스입니다.
모든 조언을 주셔서 감사합니다.
두 개의 연속 된 밑줄을 포함하는 모든 식별자는 C++ 컴파일러와 표준 라이브러리에서 사용하기 위해 예약되어 있으므로 사용자는이를 사용할 수 없습니다. 밑줄과 대문자로 시작하는 모든 식별자 시작에 대해서도 동일하게 적용됩니다. 그러나 이것은 당신의 즉각적인 문제는 아닙니다. 문제는 헤더 사이에주기적인 종속성이 있다는 것입니다 (동일한 오류가있는 많은 문제의 경우와 동일). –