web-dev-qa-db-ja.com

C ++のVtableとは

重複の可能性:
なぜ仮想テーブルが必要なのですか?

C++のvtAbleとは何ですか?
vtableは、仮想関数へのポインターの配列を持つ仮想テーブルであることを知ってください。実用的な記事はありますか? (どんなウォークスルーも歓迎されます)

21
Simsons

Vテーブル(または仮想テーブル)は、ほとんどのC++実装がポリモーフィズムを実行する方法です。クラスの具体的な実装ごとに、すべての仮想メソッドへの関数ポインターのテーブルがあります。このテーブル(仮想テーブルと呼ばれる)へのポインターは、すべてのオブジェクトのデータメンバーとして存在します。仮想メソッドを呼び出すと、オブジェクトのvテーブルを検索し、適切な派生クラスメソッドを呼び出します。

25
doron

vTable(仮想テーブル)は、動的ディスパッチ(virtualメソッド)の実装の詳細です。

詳細については、 C++-Lite-Faq を参照してください。

3
phadej

それだけの価値はありますが、これは標準のC++用語ではありません。これは、仮想関数/動的バインディングを実装するために実装で使用される実装の詳細にすぎません。

1
Chubsdad