仮想メソッド

提供: RAD Studio
移動先: 案内検索

コンポーネント開発者のためのオブジェクト指向プログラミング:インデックス への移動

仮想メソッドでは,静的メソッドよりもディスパッチのメカニズムが複雑ですが柔軟性があります。仮想メソッドは下位クラスで再定義できますが,その場合でも上位クラスで呼び出せます。仮想メソッドのアドレスはコンパイル時には決まりません。そのかわりに,仮想メソッドが定義されているクラスが実行時にアドレスを調べます。

メソッドを仮想にするには,メソッド宣言の後に virtual 指令を追加します。virtual 指令は,そのオブジェクトの仮想メソッドテーブル(VMT)にエントリを作成します。VMT には,そのオブジェクト型のすべての仮想メソッドのアドレスが格納されます。

既存のクラスから新しいクラスを派生させると,その新しいクラスにはそれ自身の VMT が与えられます。この VMT には,上位クラスから継承したすべてのエントリに加えて,新しいクラスで新しく宣言されたすべての仮想メソッドのエントリが格納されます。

関連項目