c ++中的继承与“是”关系

时间:2019-07-07 13:04:55

标签: c++ inheritance

我正在编写一个简单的猎人猎物模拟,以便训练自己。

我写了一个类worldBuilder来生成二维数组,猎物和猎人可以在其中移动。所有猎人和猎物都应该知道这个仅生成一次的二维数组。

我的想法是建立一个类hunters和类preys,它们继承了类worldBuilder的2d数组(世界地图)。

另一方面,我知道继承应该是“是”关系。例如“棒球运动员是一个人吗?”或“是员工就是一个人”->是的! ->类baseballplayer和类employee可以继承,例如名称和年龄,来自person类。

hunterprey都不是世界地图。当然我可以从main传递2d数组,但是我想通过类和对象来传递。

那么我如何生成一个所有猎人对象和猎物都知道的世界地图?

1 个答案:

答案 0 :(得分:0)

在我看来,这就像一个设计问题。

我认为您应该创建另一个类,该类的成员指向世界地图的成员指针称为“ Entity”。然后使您的猎人和猎物都从该新类继承。这样,您的猎人和猎物都将能够访问相同的世界地图。