我正在用 C++ 编写一个游戏,其中有大约 30 个不同的角色,每个角色都略有不同。我有一个主类 User,其中包含所有角色所需的所有数据。我的第一个实现涉及仅枚举 30 个角色并进行适当的处理,但现在我想知道将 User 作为基类并且每个角色都是从 User 继承的自己的类是否会更好。
我主要关心的是,当有 30 多个类继承自单个基类时,多态方法调用的效率如何?我知道多态调用涉及虚拟表中的指针,但我不确定这是否意味着在整个表中线性搜索正确的方法,或者是否可以在恒定时间内完成。
如果有人可以评论使用许多继承类的多态方法调用的效率,我将不胜感激。
提前致谢!
不使用继承,而使用组合。只需为您的“用户”类提供一个执行该角色的对象即可。因此您最终可能会得到 30 个“角色”类。但它们不会继承“User”,而是交给“User”使用(它们可以继承自己的抽象基类来定义“Role”的接口)
或者如果它只是一个函数......您可以将其建模为一堆函数对象,然后将它们传递给用户。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)