类中的 C++ 类读取父类
c++ classes within classes reading parent class
所以我目前正在研究一个小型蚂蚁农场模拟器类型的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 对象向系统添加用例,而无需放大实体对象。
相关文章:
- 从类继承时,继承的类是否会通过父类重新定义继承的变量
- 从父类方法返回子类对象
- c++, 在子类中,如何在没有对象的情况下访问父类的方法?
- 将父类对象强制转换为子类的问题
- 在运行时选择父类的实现
- 如何在C++子类中访问父类的私有变量
- 将父类的子类的数据复制到具有相同父类的另一个类
- 父类的私有函数会导致对具有相同名称和相似参数的子类中的公共函数的不明确调用
- C++ 将子类的对象添加到父类的向量中
- 两个父类的构造函数的序列
- 为什么我的子类不继承父类的字符串?
- C++调用使用重写函数的父类函数
- 在父类中公开受保护的构造函数
- 派生类调用父类的方法,该方法调用重写的虚拟方法调用错误的方法
- 如何使父类不重复已经执行的祖父方法
- 从模板化父类中的派生内部类访问受保护的成员变量
- Arduino在子类中使用父类方法
- 使用 Clang LibTooling 扫描C++在模板化父类中调用本地类的源
- 从父类的向量访问子类函数,而无需向下转换
- 类中的 C++ 类读取父类