读取父类的类中的c ++类

时间:2016-01-18 16:59:52

标签: c++ class

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

首先我有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类本身中将其定义为主变量(我希望蚂蚁改变忠诚的能力,以便说出来并只是用函数移动它)以后。

谢谢,约翰

1 个答案:

答案 0 :(得分:0)

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

这样,您有两种对象:实体对象(如Ant,AntHill等等)和交互对象(如AntRelocation,AntKiller,...)运行您的“业务逻辑”或“使用”案件”。实体对象只有多个用例共享的方法,并且是对象的固有方法,就像Ant可能有位置,大小,颜色一样。

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

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