繁体   English   中英

C ++:父对象和子对象的数组

[英]C++: Array of parent and child objects

我正在设计一款游戏,其中有些玩家卡牌是已知的,而有些则不然。 为此,我创建了一个带有子对象“ OpenPlayer”和“ ClosedPlayer”的父对象“ Player”。

我想让这个游戏中的所有玩家齐聚一堂,以促进游戏管理。 但是,我也希望能够适当地访问OpenPlayer和ClosedPlayer中的特殊方法。 这可能吗?

编辑:我实际上是在考虑使用来自STL的向量,因为由于玩家数量的变化,这可能更合适。

通常,您不能创建一个其元素属于不同类类型的C ++数组。 每个数组元素的大小必须相同,并且对于不同的子类不一定是正确的。 在数组中放入不同类型会导致切片 ,这是子类的数据成员令人惊讶的消失。

但是,如果您创建了指向不同子类的指针数组,那么您将可以轻松地执行所需的操作。 如果玩家数量可以变化,您也可以考虑使用vector而不是数组。

通过“访问特殊方法”,我假设您是指仅OpenPlayer还是ClosedPlayer中的方法?

通过数组,我假设您的意思是一些STL集合;-)

最简洁的答案是不”。

长答案是“是的,但是您需要将对象转换为正确的类型。这意味着您的设计是错误的。”

另一种设计可能是使“打开”或“关闭”成为Player类的属性,而不是各个子类的属性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM