0

我刚刚继承了(咳咳)一个 QNX 实时项目,它使用 void*/downcasting/case 语句机制来处理消息传递。我宁愿切换到具有纯虚函数的抽象基类,但我想知道原始解决方案是否出于速度原因是这样完成的?它看起来很像它最初是用 C 编写的,并且在某个时候被转移到了 C++,所以我猜这可能是它背后的原因。

对此的任何想法表示赞赏。我不想让代码变得漂亮、安全和整洁,然后在测试期间因为性能原因而失败。

4

1 回答 1

1

我怀疑性能是否会成为一个问题。如果 switch/case 中有足够的不同值,您的编译器甚至可能不会将其优化为跳转表,从而设置虚拟调度可能比 switch更快的可能性。

如果纯虚拟界面在设计方面有意义,我肯定会采用这种方式(如果您真的担心,可以进行原型设计和分析)。

于 2011-06-21T13:39:56.470 回答