我正在學習C++並編寫遊戲。它或多或少地是奧凱。但它越大,從依賴關係中獲得的麻煩就越多。 我該如何解決這種依賴性?2類試圖訪問其他方法,無法解決依賴
class myClass_2;
class myClass_1 {
private:
myClass_2 * myclass2;
public:
myClass_1() {}
void setUp(myClass_2 &myclass) {
myclass2 = &myclass;
}
void doSomething_1(){
myclass2->doSomething_2();
}
};
class myClass_2 {
private:
myClass_1 * myclass1;
public:
myClass_2() {}
void setUp(myClass_1 &myclass) {
myclass1 = &myclass;
}
void doSomething_2() {
myclass1->doSomething_1();
}
};
int main() {
myClass_1 class_1;
myClass_2 class_2;
class_1.setUp(class_2);
class_2.setUp(class_1);
return 1;
}
我希望你在真實代碼中沒有像這樣做過嗎?我的意思是,如果你打電話給「doSomething_1 | 2」,你會得到一個SO。如果你有循環依賴,我建議你看看你的設計... – Nim 2011-03-22 12:20:41
我是。我還能如何讓主要類與程序的不同部分一起工作來在主題自我之間進行交互。我有MapGrid類。管理地圖和它的一切。它在每個地圖方塊中存儲單位的ID號。然後我有一個單位工廠來控制與單位有關的所有事情。單位有id。當我創建一個新單元時,我需要將ID,x,y座標傳遞給mapGrid,以便它可以更新地圖。當我說殺死x,y座標MapGrid中的一切,我需要告訴UnitFactory殺死這些ID在x,y位置的單位 – martins 2011-03-22 12:35:40
爲什麼某些「工廠」需要保持它創建的狀態?當然,一旦工廠創建了這個項目,管理該實例的生命週期還有其他事情要做?所以從你的評論中,我收集到的是工廠創建單元,並且mapgrid應該管理它的生命週期,爲什麼需要知道(或關心)另一個? – Nim 2011-03-22 13:03:36