動的ディスパッチの例とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > 動的ディスパッチの例の意味・解説 

動的ディスパッチの例

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/10/09 14:56 UTC 版)

ダイナミックバインディング」の記事における「動的ディスパッチの例」の解説

C++では以下のように仮想関数派生クラスにてオーバーライドすることで、実際に呼び出される関数実体オブジェクトの型に応じて実行時選択することができる。これを動的ディスパッチと呼ぶ。 #include class Base {public: // 基底クラスにて virtual 指定を外すと、動的ディスパッチではなくなる。 virtual void MemberFunc() { std::cout << "Base::MemberFunc() is called." << std::endl; }};class Derived : public Base {public: // 派生クラスでの virtual 指定有無は、オーバーライドとは無関係。 // C++11 規格以降override キーワードを後置することで、正しくオーバーライドされているかどうかコンパイラチェックさせることもできるvirtual void MemberFunc() { std::cout << "Derived::MemberFunc() is called." << std::endl; }};// Base クラスから派生していない型のインスタンスBase& で受け取ることはできないコンパイラ静的な型チェックによりエラーとなる。// つまり、MemberFunc()存在有無静的検証されるvoid CallMemberFunc(Base& obj) { obj.MemberFunc();}int main() { Base b; CallMemberFunc(b); Derived d; CallMemberFunc(d); // Base& で受け取って MemberFunc()呼び出しているが、実際に呼ばれるのは Derived::MemberFunc() のほう。} 仮想関数テーブル利用した動的ディスパッチは、前述のように事前バインディング一種であり、真の意味での動的バインディング遅延バインディングとは異なる。しかし、動的ディスパッチの意味でこれらの用語が使われていることもある。

※この「動的ディスパッチの例」の解説は、「ダイナミックバインディング」の解説の一部です。
「動的ディスパッチの例」を含む「ダイナミックバインディング」の記事については、「ダイナミックバインディング」の概要を参照ください。

ウィキペディア小見出し辞書の「動的ディスパッチの例」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「動的ディスパッチの例」の関連用語

動的ディスパッチの例のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



動的ディスパッチの例のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaのダイナミックバインディング (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS