首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不管怎么说,c++中是否有一个类的函数,这些类的对象都为该函数做了一些不同的事情?

不管怎么说,c++中是否有一个类的函数,这些类的对象都为该函数做了一些不同的事情?
EN

Stack Overflow用户
提问于 2014-04-17 02:43:24
回答 2查看 90关注 0票数 0

只是一些背景:

我是一个垄断的游戏,现在我必须执行每个空间的行动,如去,财产(升级),机会,公益金,监狱等。

我已经考虑过为每个空间创建一个不同的类(但很明显,这会非常耗时)。我相信还有一种方法可以通过继承和纯粹的虚拟函数来实现。你们能不能认为这会让这个过程更简单?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-17 02:56:58

有两种方法可以使函数做不同的事情给定一个对象:

  1. 根据对象的数据区分行为。 您可以使用数据来捕捉不同空间中的差异。 SpaceType { GO,CHANCE,COMMUNITY_CHEST,//等};类空间{ public: void (){ switch (spaceType) { case GO: // DO spaceType for GO break;case CHANCE: // DO CHANCE for CHANCE;//等等。} SpaceType spaceType;}

  1. 根据对象的类型区分行为。 类空间{ public: virtual ()= 0;};类GoSpace :公共空间{ public: virtual (){ // Do都用于GO } };类ChanceSpace :公共空间{ public: virtual (){ // Do都是为机会} };//类似于其他类。

选择你的方法。就我个人而言,我会选择第二种方法,因为每种不同类型的逻辑都被放入它们自己的函数中,而不需要其他类型的复杂操作。

票数 0
EN

Stack Overflow用户

发布于 2014-04-17 02:48:38

只有几种不同类型的空间:

  • 属性
  • 铁路
  • 机会/公益金
  • 公用设施
  • 其他单身汉,如go,监狱,停车场,税收

例如,您可以有一个Property类,其中该类的每个实例都有不同的名称/颜色/价格。您不必创建22个不同的类,只需要有22个具有不同名称的类的实例。

请注意,拥有表示空间的类实例只是实现类似游戏的一种方法。我很确定我不会选择那个选择。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23123660

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档