翻訳と辞書
Words near each other
・ 仮想継承
・ 仮想計算機
・ 仮想記憶
・ 仮想記憶編成ファイル
・ 仮想評価法
・ 仮想財布
・ 仮想輸入水
・ 仮想通貨
・ 仮想銀行
・ 仮想関数
仮想関数テーブル
・ 仮想馬主ゲーム
・ 仮払
・ 仮払い
・ 仮払い金
・ 仮払消費税
・ 仮払消費税等
・ 仮払金
・ 仮拵え
・ 仮排水路


Dictionary Lists
翻訳と辞書 辞書検索 [ 開発暫定版 ]
スポンサード リンク

仮想関数テーブル : ミニ英和和英辞書
仮想関数テーブル[かそうかんすうてーぶる]
=====================================
〔語彙分解〕的な部分一致の検索結果は以下の通りです。

: [かり]
  1. (n,adj-no) temporary 2. provisional 3. informal 4. unauthorized 5. unauthorised 6. fleeting 7. assumed (name) 8. interim 9. acting 
仮想 : [かそう]
  1. (n,vs) imagination 2. supposition 3. virtual 4. potential (enemy) 
: [そう]
 【名詞】 1. conception 2. idea 3. thought 
: [せき, ぜき]
 (suf) honorific added to names of makuuchi and juryo division sumo wrestlers
関数 : [かんすう]
 (n) function (e.g., math, programming, programing)
: [すう, かず]
  1. (n,n-suf) number 2. figure 
: [ちょうおん]
 (n) long vowel mark (usually only used in katakana)
ブル : [ぶる]
 【名詞】 1. bull 2. (n) bull

仮想関数テーブル : ウィキペディア日本語版
仮想関数テーブル[かそうかんすうてーぶる]
仮想関数テーブル(かそうかんすうテーブル、)あるいはvtableは、プログラミング言語の実装において動的ポリモーフィズム、すなわち実行時のメソッド束縛を実現するために用いられる機構である。
あるプログラムが継承関係にある複数のクラスを持っているとする。たとえばスーパークラス Cat と二つのサブクラス HouseCatLion において、クラス Cat が "speak" という仮想関数を定義しており、サブクラスは適切な実装(鳴く、吠えるといった)を行うものとする。
プログラムが "speak" メソッドを Cat ポインタ(Cat クラスと Cat の任意のサブクラスを示すことができる) に対して呼び出すと、実行環境は、Cat が示す実際のオブジェクトの種類に応じてどの実装を呼び出すかを決定しなければならない。
このような動的な割り当てを実現するには様々な方法があるが、vtable による方法が C++ や関連するプログラミング言語(D言語C# など)では一般的である。
実用的なオブジェクトのインターフェイス実装と分離する言語(Visual BasicDelphi など)でも、オブジェクトが異なる関数ポインタのセットを用いるだけで異なる実装を用いることができるため、vtable による方法を用いる傾向にある。
==vtable の実装==

:オブジェクトディスパッチテーブルはオブジェクトの動的にバインドされるメソッドのアドレスを保持する。メソッドの呼び出しは、メソッドのアドレスをオブジェクトのディスパッチテーブルから取り出すことにより行われる。ディスパッチテーブルは同じクラスに属するオブジェクトでは全て同一であり、通常オブジェクトから共有される。互換性のある型のオブジェクト(継承関係において兄弟のもの)は同じレイアウトのディスパッチテーブルを持ち、あるメソッドのアドレスは、全ての型互換のクラスの中で常に同じオフセットに現れる。それゆえ、メソッドのアドレスをディスパッチテーブルから取り出すことで、オブジェクトの実際のクラスに対応したメソッドが得られる。
:(Ellis & Stroustrup 1990, pp. 227–232)
C++ の標準では、動的なディスパッチがどのように実装されるべきかについて規定していないが、一般的にコンパイラは若干の変更を加えて共通の基本的なモデルを用いる。
典型的には、コンパイラは各クラスごとに別の vtable を作成する。オブジェクトが生成される際、vtable に対するポインタ、仮想テーブルポインタ, vpointer, vptr がオブジェクトの不可視のメンバーとして追加される(通常は最初のメンバーとなる)。コンパイラはコンストラクタ内に"隠れた"コードを生成し、クラスのオブジェクトの vpointer が、対応する vtable のアドレスで初期化されるようにする。

抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)
ウィキペディアで「仮想関数テーブル」の詳細全文を読む




スポンサード リンク
翻訳と辞書 : 翻訳のためのインターネットリソース

Copyright(C) kotoba.ne.jp 1997-2016. All Rights Reserved.