Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我刚刚继承了(咳咳)一个 QNX 实时项目,它使用 void*/downcasting/case 语句机制来处理消息传递。我宁愿切换到具有纯虚函数的抽象基类,但我想知道原始解决方案是否出于速度原因是这样完成的?它看起来很像它最初是用 C 编写的,并且在某个时候被转移到了 C++,所以我猜这可能是它背后的原因。
对此的任何想法表示赞赏。我不想让代码变得漂亮、安全和整洁,然后在测试期间因为性能原因而失败。
我怀疑性能是否会成为一个问题。如果 switch/case 中有足够的不同值,您的编译器甚至可能不会将其优化为跳转表,从而设置虚拟调度可能比 switch更快的可能性。
如果纯虚拟界面在设计方面有意义,我肯定会采用这种方式(如果您真的担心,可以进行原型设计和分析)。