gpt4 book ai didi

c++ - 多态调用的成本 - C++

转载 作者:可可西里 更新时间:2023-11-01 17:37:19 26 4
gpt4 key购买 nike

我正在用 C++ 编写一个游戏,其中包含大约 30 个不同的角色,每个角色都略有不同。我有一个主类 User,其中包含所有角色所需的所有数据。我的第一个实现涉及仅枚举 30 个角色并进行适当处理,但现在我想知道将 User 作为基类并且每个角色都是从 User 继承的自己的类是否会更好。

我主要关心的是,当有 30 多个类继承自单个基类时,多态方法调用的效率如何?我知道多态调用涉及虚拟表中的指针,但我不确定这是否意味着在整个表中线性搜索正确的方法,或者是否可以在恒定时间内完成。

如果有人可以评论具有许多继承类的多态方法调用的效率,我将不胜感激。

提前致谢!

最佳答案

与其使用继承,不如使用组合。只需给您的“用户”类一个充当该角色的对象。所以你最终可能会得到 30 个“角色”类。但是他们不继承'User',而是给'User'使用(他们可以继承自己的抽象基类来定义'Role'的接口(interface))

或者如果它只是一个函数....您可以将其建模为一堆函数对象,然后将它们传递给用户。

关于c++ - 多态调用的成本 - C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10167094/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com