我正在学习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