12
仮想関数とvtableはどのように実装されますか?
私たちは皆、C ++の仮想関数を知っていますが、それらは深いレベルでどのように実装されますか? 実行時にvtableを変更したり、直接アクセスしたりできますか? vtableはすべてのクラスに存在しますか、それとも少なくとも1つの仮想関数を持つクラスのみに存在しますか? 抽象クラスは、少なくとも1つのエントリの関数ポインタにNULLを持っているだけですか? 単一の仮想関数を使用すると、クラス全体が遅くなりますか?それとも仮想関数の呼び出しだけですか?また、仮想関数が実際に上書きされているかどうかに関係なく、速度が影響を受けますか、それとも仮想である限り、効果はありません。