我目前在我的一個項目(C++)中有相互包含的問題。與單身人士相互包容
通常情況下,如果我有一個相互包容的問題,我會很容易地向前任何聲明或重新設計類稍有解決它。但是這一次,我堅持:
我有一個名爲遊戲類,它創建並啓動核心遊戲系統,在其中的一個被稱爲GraphicsSystem。 在Game構造函數中,GraphicsSystem對象是動態創建的,並存儲在GraphicsSystem *指針中。看起來是這樣的:
Game::Game()
{
gfxSys = new GraphicsSystem(80, new Camera());
}
現在我GraphicsSystem類需要在一個點上訪問遊戲類的方法來獲取玩家的對象,這是存儲在遊戲對象中。相應的部分看起來像這樣(遊戲是BTW單身!):
void GraphicsSystem::handleFrame()
{
ElementList elements = Game::instance()->getPlayer()->getEnvironment()->getElements();
}
現在我試圖向前聲明在兩個方向了,但是這並不能滿足編譯器。我當然也可以將玩家指針放入圖形系統中,但我真的不想這樣做,因爲他不屬於那裏。
有什麼辦法來解決這個沒有我不必過多改變設計?我現在真的很難過,所以我希望你們能幫助我。
我正在使用Visual Studio 2010(Visual C++)。
預先感謝您! 克里斯
您能否提供一些關於您嘗試向前申報時發生的情況的詳細信息?你的代碼文件的結構又是什麼?我的意思是相關的類是在哪些文件? – 2012-08-09 00:22:08