Oop 在c++;?
我计划使用类和其他OOP技术制作一个2d棋盘游戏。我对多态性有点了解,我想知道多态性中使用的技术是否适用于通过作文将任务从基类委派给儿童类。 [已编辑]Oop 在c++;?,oop,polymorphism,composition,Oop,Polymorphism,Composition,我计划使用类和其他OOP技术制作一个2d棋盘游戏。我对多态性有点了解,我想知道多态性中使用的技术是否适用于通过作文将任务从基类委派给儿童类。 [已编辑] 棋盘上有棋手。我想以多态方式调用两个棋手中定义的方法函数move,而不必说player1.move(),player2.move()是的,它可以实现,您的示例是什么?序言 不要迷失在设计模式或设计技术中。这个问题似乎是个XY问题。总是后退一步,考虑你想达到的目标。< /P> 目标 一个单独的电话,要求双方球员移动 TL;博士 如果没有其他的背景
棋盘上有棋手。我想以多态方式调用两个棋手中定义的方法函数move,而不必说player1.move(),player2.move()是的,它可以实现,您的示例是什么?序言 不要迷失在设计模式或设计技术中。这个问题似乎是个XY问题。总是后退一步,考虑你想达到的目标。< /P> 目标 一个单独的电话,要求双方球员移动 TL;博士 如果没有其他的背景,我会说给他们打电话 解释 一般而言:
- 棋盘上总是有两个棋手。(除非您正在设计专用规则)
- 国际象棋流程始终以循环方式运行(首先,然后第二,然后重复)
void begin_round(){
player1.move();
player2.move();
}
您可以通过调用移动来保存两行类型。。。嘿,等等!这就是begin\u round()
所做的!
多态性方法只会增加系统的复杂性,这对于系统设计来说是一个坏兆头
大多数时候,一个尽可能愚蠢的设计比一个复杂的方法要好,除非这个设计可以节省大量的维护或开发资源。如果一个设计没有保存任何东西,那么在必须使用之前不要使用它
其他
组合在您的案例中非常常见,因为
游戏
是一个棋盘和两名玩家的组合。您能举个例子吗?“通过组合实现多态性意味着什么?”我想知道多态性中使用的技术(我可以通过组合将任务从基类委派给子类)是否适用。“这不正是本文所描述的吗?棋盘上有玩家,我想以多态的方式告诉两位玩家移动他们的棋子,而不必说player1.move()和player2.move(),如果两种最常用的技术不能一起工作,那就太糟糕了。请给我们提供一些代码。任何例子都可以,但没有“是”是唯一的答案。您可以使用virtual
方法从基类引用调用派生类/子类的方法,其工作方式与在Java中的工作方式相同。您不需要它来使用组合原则来构造数据,但它是为您准备的。