0

void*/downcasting/case ステートメント メカニズムを使用してメッセージングを処理する QNX リアルタイム プロジェクトを継承しました。代わりに、純粋な仮想関数を持つ抽象基本クラスに切り替えたいと思いますが、速度上の理由から元のソリューションがそのように行われたかどうか疑問に思っていますか? 元々は C で書かれ、ある時点で C++ に移行されたように見えるので、それがその背後にある理由であると推測しています。

これについての考えは大歓迎です。私は、コードを素晴らしく、安全で、きちんとしたものにして、テスト中にパフォーマンス上の理由で失敗させたくありません。

4

1 に答える 1

1

パフォーマンスが問題になるとは思えません。スイッチ/ケースに十分な異なる値がある場合、コンパイラはそれをジャンプテーブルに最適化することすらできない可能性があり、仮想ディスパッチがスイッチよりも高速になる可能性があります。

純粋な仮想インターフェイスが設計的に意味がある場合、私は間違いなくそのようになります(本当に心配な場合は、プロトタイプを作成してプロファイルを作成します)。

于 2011-06-21T13:39:56.470 に答える