仮想関数テーブル
仮想関数テーブル（かそうかんすうテーブル、）あるいはvtableは、プログラミング言語の実装において動的なポリモーフィズム、すなわち実行時のメソッドの束縛を実現するために用いられる機構である。
あるプログラムが、継承関係にある複数のクラス（データ型）を持っているとする。たとえばスーパークラス codice_1 と二つのサブクラス codice_2 と codice_3 において、クラス codice_1 が codice_5 という仮想関数（仮想メソッド）を定義しており、サブクラスは適切な実装（鳴く、吠えるといった）を行うものとする。
プログラムがcodice_5メソッドをcodice_1へのポインタcodice_8（codice_1 クラスおよび codice_1 の任意のサブクラスを指すことができる）に対して呼び出すと、実行環境は、codice_8が指す実際のオブジェクトの種類（型）に応じてどの実装を呼び出すかを決定しなければならない。
このような動的な割り当てを実現するには様々な方法があるが、C++および関連するプログラミング言語（D言語、Java、C#など）では、vtableによる方法が一般的である。
オブジェクトのインターフェイスを実装から分離する言語（Visual Basic や Delphi など）でも、異なるメソッドポインタの集合を用いるだけで、異なる実装をオブジェクトが使用できるため、vtable による方法を採用する傾向にある。
C言語はオブジェクト指向プログラミングの機能を言語仕様としてサポートしないが、関数ポインタを利用することで仮想関数を模倣することができる。