2014-02-20 2 views
0

나는 절차 적 게임 레벨 빌더를 재귀 적 생성자로 사용하고있다. 각각의 새로운 Door 객체는 그 이상의 Room 객체에 대한 생성자를 호출합니다.이 객체는 방의 한계에 도달 할 때까지 해당 벽에 대한 새로운 Door 생성자를 호출합니다. 적절한 호랑이 처리를 위해 문이 무엇인지 알기 위해 방이 필요하고 문은 출입구에 대한 포인터가 있어야하지만 컴파일러는이를 좋아하지 않습니다. 처음에 #include 데이지 체인이 아래로 (>>는 여기에 # 포함됨을 의미합니다.) :서로 참조하는 클래스를 올바르게 작성하는 방법은 무엇입니까? (C++)

randDungeon.cpp >> door.cpp >> door.h >> room.cpp >> room.h >> 라이브러리. cpp >> Library.h

하지만 실제로는 room.cpp가 Door 객체를 알지 못하는 메시지와 함께 컴파일하려고하면 오류가 발생합니다. 위의 흐름에서 방과 문을 뒤집어 놓으면 반대의 오류가 발생합니다. 즉, 내 방은 자신의 문이 무엇인지 알고 있지만 문은 더 이상 방을 이해하지 못합니다.

상속받지 않는 클래스의 방과 방이 서로 이야기 할 수있는 클래스의 올바른 구성은 무엇입니까?

+1

.cpp 파일을'# include '하지 않기를 바랍니다 ... – LordAro

+0

컴파일러가 불평하지 않는다고 말한 적은 한번도 없었습니다. 왜 그런지 물어봐도 될까요? – redkat85

+0

답변으로 작성 됨 – LordAro

답변

3

모두 #include이 있습니까? 복사 &은 파일 내용을 기본 파일 (randDungeon.cpp)에 붙여 넣습니다.

  • 정지 #include * 보내고 .CPP 파일
  • #include 관련 : 이것은 당신의 .H 어려운 클래스 당신이해야 할 것은

    인을 사용합니다, 당신이 발견 한대로, 대부분 쓸모없는 파일 및 수 (.cpp 및 .h 파일)에서 선언 (* .h)을 사용하거나 클래스의 전달 선언을 사용하십시오 (선호)

  • 현재 여러 파일을 컴파일하는 방법을 찾으십시오. randDungeon.cpp
관련 문제