[過去ログ] C言語なら俺に聞け 151 (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
686(2): ◆QZaw55cn4c (ワッチョイ c798-SwLn) 2019/05/26(日)15:17 ID:CpBTYp0n0(1/10)調 AAS
>>681
そのご紹介のリンク先は、内容について、はっきりいって詰めが甘いです
すなわち、継承と委譲を区別できていません
そんな中途半端な理解で quita に掲載するとか、玉か石かどちらかといえば、石の部類でしょう、全然参考になりませんでした
そんな中途半端な内容の記事を掲載するあなたも同様と判断いたします
687: ◆QZaw55cn4c (ワッチョイ c798-SwLn) 2019/05/26(日)15:19 ID:CpBTYp0n0(2/10)調 AAS
>>683
事実かどうかは、主観的か客観的か、に依存すると思いますが、
相対論においてはすべての事象について純客観的などありえない…?
ので、?より、あなたは主観を主張しているものと私は理解します
689(2): ◆QZaw55cn4c (ワッチョイ c798-SwLn) 2019/05/26(日)15:52 ID:CpBTYp0n0(3/10)調 AAS
>>688
委譲による実装で継承を実現できているのなら、それは継承(の一形態)である、…? という主張ですね
?は私にも理解できますが、委譲はダイヤモンド継承を回避できない欠点があるのでは、と考えています
「ダイヤモンド継承」については C++ の書籍には大概載っているかと、具体的な書籍名は探しておきます
691(1): ◆QZaw55cn4c (ワッチョイ c798-SwLn) 2019/05/26(日)16:02 ID:CpBTYp0n0(4/10)調 AAS
>>690
それは初耳です
Object Oriented に継承は憑き物だと思っていました、継承のない OO って存在するのですか?それは例えばなにですか?
695(1): ◆QZaw55cn4c (ワッチョイ c798-SwLn) 2019/05/26(日)16:40 ID:CpBTYp0n0(5/10)調 AAS
>>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 の実態を一つに限定することが不可能です、つまり選択肢を準備できません
以上より委譲で継承のすべてを代行できないため、委譲と継承を区別する必要が生じると考えます
ただし、多重継承を認めないのであれば、委譲と継承は同一視しても差し支えないと考えます
696: ◆QZaw55cn4c (ワッチョイ c798-SwLn) 2019/05/26(日)16:41 ID:CpBTYp0n0(6/10)調 AAS
>>693-694
ふーん、インタプリタ JavaScript には継承はないのですか
698: ◆QZaw55cn4c (ワッチョイ c798-SwLn) 2019/05/26(日)17:08 ID:CpBTYp0n0(7/10)調 AAS
>>692
>明確に区別しないことも理解できると言うなら「詰めが甘い」とか「中途半端」とか言ってたのは何なのか・・・。
「単一継承に限定するのならば委譲による継承の実装も可能である」という意味での>>689の「理解します」の文言だと解釈ください
ただし委譲で継承をすべて実現できないので、>>681 掲載のリンク先は「詰めが甘い」と判断せざるを得ない、そんなリンク先を紹介する >>681 も同様と判断するものです
702(2): ◆QZaw55cn4c (ワッチョイ c798-SwLn) 2019/05/26(日)17:50 ID:CpBTYp0n0(8/10)調 AAS
>>700
>C++が仮想継承・多重継承でやっていることをコードで書き下せば済む話。
そこで実現されているのは私のいうところの継承であって、私のいうところの委譲ではありません
委譲ではダイヤモンド継承に対応できない(選択肢を提供できない)
したがって、委譲と継承とは区別するべきであり委譲で継承を実装するべきではない、という私の主観には一貫性があると思います
705(1): ◆QZaw55cn4c (ワッチョイ c798-SwLn) 2019/05/26(日)18:09 ID:CpBTYp0n0(9/10)調 AAS
>>703
私がいつ「継承は要らない子」とかいいましたか?
あくまでも「継承を委譲で実装できない」とは言っていますが(これは部分的に意見を修正していますが)「継承不要論」とかは一切主張していないと考えていますよ
706(1): ◆QZaw55cn4c (ワッチョイ c798-SwLn) 2019/05/26(日)18:13 ID:CpBTYp0n0(10/10)調 AAS
>>704
継承と委譲の区別は必要だと思いますよ、その言葉を贈らせていただきましょう
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.053s