重複の可能性:
仮想関数とパフォーマンス-C ++
私はいくつかのクラスを持っています:
class I
{
public:
virtual void foo() = 0;
protected:
virtual ~I(){}
};
このクラスはインスタンス削除のインターフェースを提供しないため、デストラクタを保護することは非常に論理的な解決策です。このため、デストラクタを仮想化する必要はありません。しかし、私はそれが仮想化されたコードを持っています。
大きな間違いのようには見えませんが、コードのパフォーマンスにとっては重要ですか?仮想関数を作成するときは、仮想関数テーブルにもう1つのレコードを追加し、仮想呼び出しを行うときは、このテーブルを検索します。つまり、検索時間が長くなるということです。私は正しいですか?