现在,我有一个包含一些组件的类来执行操作,而这些组件也需要此父类的引用来更新状态。它们相互耦合使设计变得困难。这是示例代码片段:
#include<iostream>
#include <windows.h>
#include <math.h>
using namespace std;
class man {
public:
int health{ 10 }, x, y;
void update();
private:
class moveCom *_move;
class judgeCom *_judge;
};
class moveCom {
public:
void update(man&m) {
++m.x;
++m.y;
}
};
class judgeCom {
public:
void update(man&m) {
if(rand()%10 <= 5)
++m.health;
else --m.health;
}
};
void man::update() {
_move->update(*this);
_judge->update(*this);
cout << health << " " << x << " " << y << endl;
}
int main() {
man m;
while (1) {
Sleep(200);
m.update();
}
return 0;
}
此代码只能在同一个cpp文件中工作,这意味着如果将它们拆分为不同的hpp / cpp将导致编译错误。是否有任何更好的实践方法?
编辑:对不起,我再试一次,也可以单独尝试。