>>692
クラス A, B, C, D について、
A のメンバ変数を a とする、また
B->A(B は A を派生する)
C->A
D->B, C (多重継承)
において、これを委譲で実装すると、B.A.a と C.A.a が同じであるべきにもかかわらず二重にインスタンスとして生成されてしまうので、
継承で実装した D.a を、委譲で実装した D.B.a と同一視するか、D.C.a と同一視するか、また継承における D.a を更新した場合に委譲では D.B.a と D.C.a の両方を更新するコードを生成しなければならないのか、
等あいまいな部分がでてくる、これがダイヤモンド継承問題です
継承で実装すれば、C++ ではこれを仮想継承といいますが D.a の実態を一つに限定することができますし、D.B.a, D.C.a の両方を保存することもできます、つまりモデリングにおいて選択肢を準備できる
しかし委譲で実装すると D.a の実態を一つに限定することが不可能です、つまり選択肢を準備できません
以上より委譲で継承のすべてを代行できないため、委譲と継承を区別する必要が生じると考えます
ただし、多重継承を認めないのであれば、委譲と継承は同一視しても差し支えないと考えます
探検
C言語なら俺に聞け 151
■ このスレッドは過去ログ倉庫に格納されています
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 緊急地震速報 東北 北海道 [KingFisherは魚じゃないよ★]
- ■緊急地震速報 東北 北海道 最大震度6強 [人気者★]
- ■津波警報発令 3m 青森太平洋沿岸 岩手 北海道 す ぐ 逃 げ て [人気者★]
- 【地震速報】青森県で震度6強 沿岸部に津波警報 [ぐれ★]
- 津波警報発令! 青森太平洋沿岸 岩手 北海道太平洋沿岸中部 すぐ逃げて!!! [KingFisherは魚じゃないよ★]
- 【速報】高市総理が官邸入り [Hitzeschleier★]
- 地震
- 津波警報 3メートル 早く逃げろ!!!!!!!! [579392623]
- 地震 ★2
- 【速報】高市早苗、起床 [779938112]
- 【高市画像】3mの津波、結構やばい❗❗ [573041775]
- 大地震
