1. ホーム
  2. c++

[解決済み] C++のvtableとは [重複] [重複

2022-03-03 17:55:48

質問

<ブロッククオート

重複の可能性があります。

なぜバーチャル・テーブルが必要なのですか?

C++のvtableとは何ですか?

今のところ、vtableは仮想関数へのポインタの配列を持つ仮想テーブルであることは知っています。 実用的な実装例が載っている記事はないでしょうか? (どのようなものでも結構です。)

どのように解決するのですか?

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