翻訳と辞書
Words near each other
・ 仮想現実
・ 仮想現実モデリング言語
・ 仮想現実感
・ 仮想環境
・ 仮想移動体サービス提供者
・ 仮想移動体通信事業者
・ 仮想空間
・ 仮想端末
・ 仮想粒子
・ 仮想結晶近似
仮想継承
・ 仮想計算機
・ 仮想記憶
・ 仮想記憶編成ファイル
・ 仮想評価法
・ 仮想財布
・ 仮想輸入水
・ 仮想通貨
・ 仮想銀行
・ 仮想関数


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

仮想継承 : ウィキペディア日本語版
仮想継承[かそうけいしょう]
仮想継承(かそうけいしょう、)とは、C++プログラミング言語における継承の一種で、多重継承によって生じる問題(菱形継承問題)を解決するもの。どの上位クラスのメンバーを使うか曖昧さが生じる部分で、明確化する。仮想継承は、部分の合成という意味での継承よりも、継承が上位クラスへの制限を表している場合に使われる。多重継承の基底クラスは、virtual というキーワードで仮想継承であることを指定される。
== 問題 ==
次のようなクラス階層を考える。

class Animal
;
class Mammal : public Animal
;
class WingedAnimal : public Animal
;
// Bat(こうもり)は翼のある哺乳類(winged mammal)である
class Bat : public Mammal, public WingedAnimal ;
Bat bat;

bateat() メソッドを呼び出した場合、どうなるだろうか? 上の宣言では bat.eat() の呼び出しは曖昧である。bat.WingedAnimal.Animal::eat() なのか bat.Mammal.Animal::eat() なのか判らない。問題は、いわゆる多重継承の意味論が現実をモデル化したものではない点にある。感覚的に言えば、AnimalAnimal でしかないように、BatMammal であると同時に WingedAnimal である。しかしBat(こうもり)のMammal(哺乳類)性におけるAnimal(動物)性は、WingedAnimal(翼のある動物)性におけるAnimal(動物)性と同じである。
このような状況を菱形継承と呼び、これを解決するのが仮想継承である。

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



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

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