类中的 C++ 类读取父类

c++ classes within classes reading parent class

本文关键字:父类 读取 C++      更新时间:2023-10-16

所以我目前正在研究一个小型蚂蚁农场模拟器类型的jobby,我遇到了一个问题。

首先,我有 4 个类,我将在这里简化它们,否则代码将是 looong:

class Ant
{
// Ant's stuff
}
class AntArray
{
std::vector<Ant> Antarray; //a vector that has ants added with a function
}
class AntHill
{
//ant hill stuff
}
class AntHillArray
{
std::vector<AntHill> HillArray; //a vector that has hills added with a function
}

我有这个,我在 Ant 类中有一个函数,可以将蚂蚁移动到某个位置,我想参考蚂蚁山坐标的位置并执行算法来确定将蚂蚁移动到哪里。

我如何引用蚂蚁山的数据来执行此操作,而无需在 Ant 类本身中将其定义为 home 变量(我希望蚂蚁能够改变效忠,可以这么说,稍后用函数移动它。

谢谢,约翰

你应该有另一个名为 AntRelocation 的类,它将 Ant 实例和 AntHill 实例作为输入,计算要移动到的位置,然后调用 Ant.setLocation() 将 Ant 的状态更改为新位置。

这样,您就有两种对象:实体对象(如Ant,AntHill等)和Interactor对象(如AntRelocation,AntKiller等),它们运行您的"业务逻辑"或"用例"。实体对象仅具有由多个用例共享且是对象固有的方法,例如 Ant 可能具有位置、大小和颜色。

但是,要确定蚂蚁应该如何移动,您需要不属于 Ant 对象的信息。在这里,交互器对象开始发挥作用。它实现将来自不同源的数据汇集在一起的逻辑,使实体对象保持干净。

这是一种"用例"驱动的面向对象设计方法。它使您的实体对象保持简单,不依赖于太多的东西,并且它允许您通过添加 Interactor 对象向系统添加用例,而无需放大实体对象。