2012-08-09 5 views
1

현재 프로젝트 (C++)에서 상호 포함에 문제가 있습니다.싱글 톤으로 상호 포함

일반적으로 상호 포용 문제가있는 경우 전방 선언 또는 클래스 재 설계로 쉽게 해결할 수 있습니다. 하지만이 시간, 나는 붙어 :

내가 만들고 이들 중 하나가 GraphicsSystem라고 핵심 게임 시스템을 출시 게임라는 클래스를 보유하고 있습니다. Game 생성자에서 GraphicsSystem 객체가 동적으로 생성되어 GraphicsSystem * 포인터에 저장됩니다. 다음과 같습니다

Game::Game() 
{ 
    gfxSys = new GraphicsSystem(80, new Camera()); 
} 

이제 내 GraphicsSystem 클래스는 게임 객체 내에 저장되어있는 플레이어 객체를 얻기 위해 하나 개의 시점에서 게임 클래스의 메소드에 액세스 할 필요가있다.

void GraphicsSystem::handleFrame() 
{ 
    ElementList elements = Game::instance()->getPlayer()->getEnvironment()->getElements(); 
} 

지금 이미 양방향으로 선언을 기대했지만, 그 컴파일러를 만족하지 않을 : (! 게임 BTW 싱글 톤) 각각의 부분은 다음과 같습니다. 물론 플레이어의 포인터를 그래픽 시스템에 넣을 수도 있습니다.하지만 실제로는 플레이어의 포인터를 그래픽 시스템에 포함시키지 않으려 고합니다.

디자인을 너무 많이 변경하지 않고도이를 해결할 수있는 방법이 있습니까? 나는 지금 정말 곤란하다. 그래서 너희들이 나를 도울 수 있기를 바란다.

Visual Studio 2010 (Visual C++)을 사용하고 있습니다.

미리 감사드립니다. Chris

+0

전달 선언을 시도 할 때 일어나는 일에 대해 자세히 설명해 줄 수 있습니까? 또한 코드 파일의 구조는 무엇입니까? 관련 클래스가 어떤 파일에 있다는 것을 의미합니까? –

답변

관련 문제