探検
オブジェクト指向はオワコン
■ このスレッドは過去ログ倉庫に格納されています
2023/08/26(土) 22:00:53.85ID:H4l7y46b
最近の言語には採用されないことが増えている
639デフォルトの名無しさん
2024/01/19(金) 08:49:00.44ID:MC8t1NGB クラス継承ですらデメリットが大きいためモダンなプログラミング言語では採用されていないのに
クラス多重継承なんてあまりにもダメすぎるため採用しているメジャーな言語はPython Perl C++のダメ言語御三家のみ
クラス多重継承を採用していない言語が正しい
クラス多重継承なんてあまりにもダメすぎるため採用しているメジャーな言語はPython Perl C++のダメ言語御三家のみ
クラス多重継承を採用していない言語が正しい
640デフォルトの名無しさん
2024/01/19(金) 09:04:50.86ID:oSBLpXih 継承は凡人には使いこなせなかった
なので、機能として存在する意味がないし、下手に使うと有害なので廃止された
なので、機能として存在する意味がないし、下手に使うと有害なので廃止された
641デフォルトの名無しさん
2024/01/19(金) 09:30:06.32ID:iTaoyDeQ 多重継承は曖昧だというが、自然言語処理はその曖昧さが大切になる。チンポは随意筋であり不随意筋である。
>>639
>クラス多重継承なんてあまりにもダメすぎるため
最終的に,クラス階層は最上位クラスを含めた
最大8 階層から構成され,「伝統的な日本の絵画」
に属する用語に対応する 55 クラスと解説文中か
ら抽出した139 クラスが配置された。ただし,そ
のうち 32 クラスが複数の上位クラスをもつとい
う多重継承が示された。例えば,「ngyc:絵巻物」
は「ngyc:伝統的な日本の絵画」と,「ngyc:表具の
形式」の下位クラスである「ngyc:巻子」の 2 つの
クラスを継承する(図 2)。こうした多重継承は,
本質属性をもつ基本概念と機能を表すロール概念
を分離することで,基本概念による属性継承に限
った階層関係に変更するという考え方もあり 10),
「ngyc:伝統的な日本の絵画」がロール概念で,
「ngyc:表具の形式」が基本概念と捉えることもで
きる。しかし,本研究ではテキストからの情報抽
出に即して配置し,多重継承を許容した階層を導
き出した。
http://www.mslis.jp/am2019yoko/05_kobayashi.pdf
随意筋 不随意筋
↖ ↗
チンポ
>>639
>クラス多重継承なんてあまりにもダメすぎるため
最終的に,クラス階層は最上位クラスを含めた
最大8 階層から構成され,「伝統的な日本の絵画」
に属する用語に対応する 55 クラスと解説文中か
ら抽出した139 クラスが配置された。ただし,そ
のうち 32 クラスが複数の上位クラスをもつとい
う多重継承が示された。例えば,「ngyc:絵巻物」
は「ngyc:伝統的な日本の絵画」と,「ngyc:表具の
形式」の下位クラスである「ngyc:巻子」の 2 つの
クラスを継承する(図 2)。こうした多重継承は,
本質属性をもつ基本概念と機能を表すロール概念
を分離することで,基本概念による属性継承に限
った階層関係に変更するという考え方もあり 10),
「ngyc:伝統的な日本の絵画」がロール概念で,
「ngyc:表具の形式」が基本概念と捉えることもで
きる。しかし,本研究ではテキストからの情報抽
出に即して配置し,多重継承を許容した階層を導
き出した。
http://www.mslis.jp/am2019yoko/05_kobayashi.pdf
随意筋 不随意筋
↖ ↗
チンポ
642デフォルトの名無しさん
2024/01/19(金) 09:43:00.08ID:sTJV5iPD もう下品な比喩はいいからw
643デフォルトの名無しさん
2024/01/19(金) 10:56:52.36ID:HG/MrdYG ガンダムで例えてくれ
644デフォルトの名無しさん
2024/01/19(金) 11:09:31.72ID:NQtmyzQy 継承無くてもポリモーフィズムはできる
それでいい
それでいい
645デフォルトの名無しさん
2024/01/19(金) 11:30:43.26ID:HG/MrdYG テンプレートおよびジェネリクスは禁止で
それでいい
それでいい
646デフォルトの名無しさん
2024/01/19(金) 11:37:19.74ID:iTaoyDeQ 「なぜPythonが人気なのか」を機能性・転職市場・将来性の3視点で調査
Python入門
2023年11月24日
https://www.sejuku.net/blog/108069
>>639
>クラス多重継承なんてあまりにもダメすぎるため採用しているメジャーな言語はPython Perl C++のダメ言語御三家のみ
流行とかパラダイムが全てでは無いにせよ、オブジェクト指向=人工知能ということなら、
自然言語処理における意味解釈は語のルーツを掘り下げるための「多重継承」がメインになる
随意筋 不随意筋
↖ ↗
チンポ
文脈によって同一オブジェクトが真逆の振る舞いをするということね!
Python入門
2023年11月24日
https://www.sejuku.net/blog/108069
>>639
>クラス多重継承なんてあまりにもダメすぎるため採用しているメジャーな言語はPython Perl C++のダメ言語御三家のみ
流行とかパラダイムが全てでは無いにせよ、オブジェクト指向=人工知能ということなら、
自然言語処理における意味解釈は語のルーツを掘り下げるための「多重継承」がメインになる
随意筋 不随意筋
↖ ↗
チンポ
文脈によって同一オブジェクトが真逆の振る舞いをするということね!
647デフォルトの名無しさん
2024/01/19(金) 11:40:54.55ID:arzVgFZ3 もう継承はゴミってことで結論出てるのになんでそんなに無くてはならないって拘るの?
648デフォルトの名無しさん
2024/01/19(金) 11:50:05.51ID:iTaoyDeQ >>647
最新調査でPythonが人気なのと、Pythonが多重継承をサポートしているのは、どう説明するのかな?
最新調査でPythonが人気なのと、Pythonが多重継承をサポートしているのは、どう説明するのかな?
649デフォルトの名無しさん
2024/01/19(金) 12:04:44.60ID:iTaoyDeQ 集約と継承を使い分けることが大切ね!
>>623
>欲しかったのはバナナだけなのに、あなたが得たのはバナナを持っていたゴリラと、ジャングル全体だった。
ジャングルーーーーーーーーーー
┃ ゴリラーーーー ┃ ┃ ┃ バナナ ┃ ┃
┃ ーーーーーーー ┃
┃ ┃
ーーーーーーーーーーーーーーー
クリントンーーーーーーーーーー
┃ ┃
┃ ┃
┃ ┃
┃ ┃
┃ ┃
ーーーーーーーーーーーーーーー
┃チンポ┃
 ̄ ̄ ̄ ̄
>>623
>欲しかったのはバナナだけなのに、あなたが得たのはバナナを持っていたゴリラと、ジャングル全体だった。
ジャングルーーーーーーーーーー
┃ ゴリラーーーー ┃ ┃ ┃ バナナ ┃ ┃
┃ ーーーーーーー ┃
┃ ┃
ーーーーーーーーーーーーーーー
クリントンーーーーーーーーーー
┃ ┃
┃ ┃
┃ ┃
┃ ┃
┃ ┃
ーーーーーーーーーーーーーーー
┃チンポ┃
 ̄ ̄ ̄ ̄
650デフォルトの名無しさん
2024/01/19(金) 12:26:06.50ID:SK8TlxrV >>631
多態性・情報隠蔽ですら無くて、単にインスタンス間でやり取りするときのインターフェイスとプロトコルを確定しておきたいだけだよ。
継承みたいなコンパイラ都合のお作法はうざったいだけだし、インターフェイスとプロトコルを守っているなら多態かどうかもどうでもいい。結果的に多態になるけど、あくまで結果論。
多態性・情報隠蔽ですら無くて、単にインスタンス間でやり取りするときのインターフェイスとプロトコルを確定しておきたいだけだよ。
継承みたいなコンパイラ都合のお作法はうざったいだけだし、インターフェイスとプロトコルを守っているなら多態かどうかもどうでもいい。結果的に多態になるけど、あくまで結果論。
651デフォルトの名無しさん
2024/01/19(金) 12:31:42.38ID:arzVgFZ3652デフォルトの名無しさん
2024/01/19(金) 12:38:25.66ID:SK8TlxrV オブジェクト指向がオワコンというのは正しくて、よりインスタンス間のルール管理に注力した契約プログラムとかに発展的解消してんじゃないのかね。
653デフォルトの名無しさん
2024/01/19(金) 12:44:39.23ID:arzVgFZ3 >>650
インスタンス間でやり取りするときのインターフェイスとプロトコルを確定(カプセル化)することがまさしく不要な情報の隠蔽なのでは?
それでカプセル化したらポリモーフィズムに基づいてアクセスさせるか~みたいな感じでしょ?
インスタンス間でやり取りするときのインターフェイスとプロトコルを確定(カプセル化)することがまさしく不要な情報の隠蔽なのでは?
それでカプセル化したらポリモーフィズムに基づいてアクセスさせるか~みたいな感じでしょ?
654デフォルトの名無しさん
2024/01/19(金) 12:45:36.30ID:arzVgFZ3 そんでカプセル化したものを継承させるのはプログラムが煩雑になるからやめましょうよ、継承の実装を省くならクラスもいらないねってそういう話じゃん
655デフォルトの名無しさん
2024/01/19(金) 12:52:25.37ID:rg+QtK0B656デフォルトの名無しさん
2024/01/19(金) 12:54:01.11ID:SK8TlxrV657デフォルトの名無しさん
2024/01/19(金) 12:54:57.24ID:iTaoyDeQ オンラインゲームのアップデートは「カプセル化したものを継承」では?
>>654
>そんでカプセル化したものを継承させるのはプログラムが煩雑になるからやめましょうよ、
大型アップデート情報 バージョン6.5[後期] (2023/11/21 更新)
https://hiroba.dqx.jp/sc/topics/detail/0e4f5cc9f4f3f7f1651a6b9f9214e5b1/
システムのアップデートは一般的に「継承」と自分は思うが、丸ごと作り直したほうが良いのかな?
>>654
>そんでカプセル化したものを継承させるのはプログラムが煩雑になるからやめましょうよ、
大型アップデート情報 バージョン6.5[後期] (2023/11/21 更新)
https://hiroba.dqx.jp/sc/topics/detail/0e4f5cc9f4f3f7f1651a6b9f9214e5b1/
システムのアップデートは一般的に「継承」と自分は思うが、丸ごと作り直したほうが良いのかな?
658デフォルトの名無しさん
2024/01/19(金) 13:07:12.61ID:iTaoyDeQ 私見としてはオンラインゲームと言えども、大型バージョンアップ時は丸ごと作り直したほうがいいと思う
ドラクエ10のバージョン7ということなら、すべてを再インストール化でもいい
ドラクエ10のバージョン7ということなら、すべてを再インストール化でもいい
659デフォルトの名無しさん
2024/01/19(金) 13:15:20.79ID:arzVgFZ3 >>657
オンラインゲームのアップデートってなに?もっと具体的に頼む
バグ修正?新機能の追加?新キャラの追加?
バグ修正や新機能はカプセル化の対応部分の丸ごと書き換え等いろいろあるだろうね
新キャラ追加はカプセル化したクラスモデルを継承して作り上げて、それをロードしてやれば、ポリモーフィズムに基づいて動いてくれるだろうね
オンラインゲームのアップデートってなに?もっと具体的に頼む
バグ修正?新機能の追加?新キャラの追加?
バグ修正や新機能はカプセル化の対応部分の丸ごと書き換え等いろいろあるだろうね
新キャラ追加はカプセル化したクラスモデルを継承して作り上げて、それをロードしてやれば、ポリモーフィズムに基づいて動いてくれるだろうね
660デフォルトの名無しさん
2024/01/19(金) 13:17:20.00ID:2+AapLKd さすがにアプデを継承と考えるのはややこしくなるからやめたほうがいい
661デフォルトの名無しさん
2024/01/19(金) 13:25:42.10ID:iTaoyDeQ >>659
>オンラインゲームのアップデートってなに?もっと具体的に頼む
オンラインゲームというのは、リリース後も次々とアップデートを繰り返し、機能が増えていきます。
よって、一番最初の設計で、どれだけ未来の変化を予測して、準備しておけるかが大事になってきます。
後になって苦しまないために、最初は多少面倒でも、柔軟でわかりやすい、変化に耐えうる設計を心がけたいものです。
https://developer.aiming-inc.com/programming/design-battle-program/
オブジェクト指向を初めて勉強していたころ、クラスの継承は(個人的には)理解しやすかったですが、
インターフェースはいまいち利点が分かりづらい印象がありました。
そこで、デザインパターンのひとつ「Observerパターン」を取り上げて、
継承とインターフェースの使用法を見ていきます。Observerパターンは先ほどの一斉攻撃にも近いパターンになります。
https://qiita.com/kcpoipoi/items/e6c495e7a481e02847d8
>オンラインゲームのアップデートってなに?もっと具体的に頼む
オンラインゲームというのは、リリース後も次々とアップデートを繰り返し、機能が増えていきます。
よって、一番最初の設計で、どれだけ未来の変化を予測して、準備しておけるかが大事になってきます。
後になって苦しまないために、最初は多少面倒でも、柔軟でわかりやすい、変化に耐えうる設計を心がけたいものです。
https://developer.aiming-inc.com/programming/design-battle-program/
オブジェクト指向を初めて勉強していたころ、クラスの継承は(個人的には)理解しやすかったですが、
インターフェースはいまいち利点が分かりづらい印象がありました。
そこで、デザインパターンのひとつ「Observerパターン」を取り上げて、
継承とインターフェースの使用法を見ていきます。Observerパターンは先ほどの一斉攻撃にも近いパターンになります。
https://qiita.com/kcpoipoi/items/e6c495e7a481e02847d8
662デフォルトの名無しさん
2024/01/19(金) 14:00:28.63ID:arzVgFZ3663デフォルトの名無しさん
2024/01/19(金) 14:14:12.14ID:arzVgFZ3 あ、継承をゴミと言ってるのであって、インターフェースやトレイトは存分に使うべきものだから
勘違いしてもらったら困るぞ
勘違いしてもらったら困るぞ
664デフォルトの名無しさん
2024/01/19(金) 14:21:52.28ID:arzVgFZ3 新キャラ新技くらいならカプセル化の継承でもなくてインターフェースをただ実装するだけで済ませてるか>>661
自分の作品見てたら画面追加は継承を使ってたわ
自分の作品見てたら画面追加は継承を使ってたわ
665デフォルトの名無しさん
2024/01/19(金) 14:23:53.15ID:2Txscu7W666デフォルトの名無しさん
2024/01/19(金) 14:33:48.49ID:arzVgFZ3667デフォルトの名無しさん
2024/01/19(金) 14:51:07.26ID:2+AapLKd お勉強発表会はたのちいね
668デフォルトの名無しさん
2024/01/19(金) 14:54:55.85ID:arzVgFZ3 >>667
むちゃくちゃ楽しい
むちゃくちゃ楽しい
669デフォルトの名無しさん
2024/01/19(金) 14:59:58.61ID:2Txscu7W >>667
と暇人が申しております
と暇人が申しております
670デフォルトの名無しさん
2024/01/19(金) 17:41:08.81ID:wxu2zgr7671デフォルトの名無しさん
2024/01/19(金) 18:11:39.79ID:Hi84WC+x672デフォルトの名無しさん
2024/01/19(金) 18:21:46.43ID:9QtN1Vnk >>670
つまりinterfaceで十分ってことだな
つまりinterfaceで十分ってことだな
673デフォルトの名無しさん
2024/01/19(金) 19:20:32.13ID:iTaoyDeQ _w 、... ョ ┌┐ ィ ′
 ̄+ ヘe、 j「. .¬气¬''..~''~ ,.ルw、.ーu、す
^^"~~l|~~^''' ォ′ .,. l| ┐ .√ j| _~+,.、.
. .,/. ょ_/ 、j「 { `¬.. 〃 .、l| 、
.. ~^. ~ ` ~^
. ;. ョ __
. j| ~ラ¬¬+ |.  ̄.  ̄..
. オ |.. ォ ,、
k、 ,j〃. L_. _ェ ~'――'~. ^^^^^^ ̄´
 ̄′  ̄ ̄
 ̄+ ヘe、 j「. .¬气¬''..~''~ ,.ルw、.ーu、す
^^"~~l|~~^''' ォ′ .,. l| ┐ .√ j| _~+,.、.
. .,/. ょ_/ 、j「 { `¬.. 〃 .、l| 、
.. ~^. ~ ` ~^
. ;. ョ __
. j| ~ラ¬¬+ |.  ̄.  ̄..
. オ |.. ォ ,、
k、 ,j〃. L_. _ェ ~'――'~. ^^^^^^ ̄´
 ̄′  ̄ ̄
674デフォルトの名無しさん
2024/01/19(金) 19:28:18.36ID:r1TqRAYd 一人で書き込みお疲れ様。
675デフォルトの名無しさん
2024/01/19(金) 19:43:32.99ID:SK8TlxrV >>671
熟練の設計者が慣れた問題領域やるんでもなければ無理だろ。
熟練の設計者が慣れた問題領域やるんでもなければ無理だろ。
676デフォルトの名無しさん
2024/01/19(金) 19:52:40.51ID:SK8TlxrV677デフォルトの名無しさん
2024/01/19(金) 20:09:04.02ID:XrKZZkrv >>675
超大型建築より普通の一軒家の方が数、つまりニーズが圧倒的に多い
アプリは常にスケールする可能性がある、というのは理論的な話で実際スケールするアプリなんかほんの一握り。結局作ってそのままなんていくらでもある。変更が無いケースで熟練どうたらとか全く無関係。
超大型建築より普通の一軒家の方が数、つまりニーズが圧倒的に多い
アプリは常にスケールする可能性がある、というのは理論的な話で実際スケールするアプリなんかほんの一握り。結局作ってそのままなんていくらでもある。変更が無いケースで熟練どうたらとか全く無関係。
678デフォルトの名無しさん
2024/01/19(金) 20:34:16.00ID:SK8TlxrV >>677
普通の一軒家とか、問題領域の知識が無くて失敗する事例の宝庫だろ。あとになって大抵の人間は「コンセントが足りない」と言うしな。
変更しないままなのは「変更しなくていい」じゃなくて「変更は不可能に近いから不便・危険でも諦める」だからな。
普通の一軒家とか、問題領域の知識が無くて失敗する事例の宝庫だろ。あとになって大抵の人間は「コンセントが足りない」と言うしな。
変更しないままなのは「変更しなくていい」じゃなくて「変更は不可能に近いから不便・危険でも諦める」だからな。
679デフォルトの名無しさん
2024/01/19(金) 20:49:36.09ID:XrKZZkrv 結局継承で都合が悪いケースなんて極一部というのが現実。
ヤグニの原則に反して嬉しいのは客の金でただで勉強・実験したいエンジニアだけ。
ヤグニの原則に反して嬉しいのは客の金でただで勉強・実験したいエンジニアだけ。
680デフォルトの名無しさん
2024/01/19(金) 21:05:02.67ID:SK8TlxrV681デフォルトの名無しさん
2024/01/19(金) 21:27:25.19ID:K5SD+kWD >>672
インターフェースだけだとコピペ継承が乱立するんだよ
そこでインターフェースのデフォルト実装等クラス継承と同じ実装継承を使うことになる
でもクラス継承はとにかく悪だと思ってる人は実装継承のメリットとデメリットを正しく理解できてないから結局同じ問題を引き起こすだけ
インターフェースだけだとコピペ継承が乱立するんだよ
そこでインターフェースのデフォルト実装等クラス継承と同じ実装継承を使うことになる
でもクラス継承はとにかく悪だと思ってる人は実装継承のメリットとデメリットを正しく理解できてないから結局同じ問題を引き起こすだけ
682デフォルトの名無しさん
2024/01/19(金) 22:05:02.77ID:yy9dhl7c683デフォルトの名無しさん
2024/01/19(金) 22:20:13.70ID:XrKZZkrv >>680
5chで勝手にクソ仕様認定してるクソレスを気にする人はいないw
5chで勝手にクソ仕様認定してるクソレスを気にする人はいないw
684デフォルトの名無しさん
2024/01/19(金) 22:21:58.98ID:sTJV5iPD 顧客に設計なんか分からないから突き進むだろ
685デフォルトの名無しさん
2024/01/19(金) 22:22:17.78ID:EWU8L+d2 >>681
その点ではRustのtraitが最も良いね
Rustのtraitでのデフォルト実装は各型のメンバーや固有メソッドを呼び出せないので実装継承の問題が起きない
そのtrait(とそのtrait制約)のメソッドしか呼び出せないから移譲と合成の形になる
その点ではRustのtraitが最も良いね
Rustのtraitでのデフォルト実装は各型のメンバーや固有メソッドを呼び出せないので実装継承の問題が起きない
そのtrait(とそのtrait制約)のメソッドしか呼び出せないから移譲と合成の形になる
686デフォルトの名無しさん
2024/01/19(金) 22:54:39.62ID:2Txscu7W >>685
こういう感じで言語によって前提が違う場合があるから抽象的な議論の有効性はかなり微妙
こういう感じで言語によって前提が違う場合があるから抽象的な議論の有効性はかなり微妙
687デフォルトの名無しさん
2024/01/19(金) 23:13:57.01ID:k/iqMx14 >>685
はい残念
Traitのデフォルト実装も実装継承だからクラス継承のデメリットの大半を”継承”してる
メリットとデメリットを理解して使い分けられるようにならないうちは結局のところ何使っても同じ
はい残念
Traitのデフォルト実装も実装継承だからクラス継承のデメリットの大半を”継承”してる
メリットとデメリットを理解して使い分けられるようにならないうちは結局のところ何使っても同じ
688デフォルトの名無しさん
2024/01/19(金) 23:19:40.83ID:EWU8L+d2689デフォルトの名無しさん
2024/01/19(金) 23:28:42.74ID:2Txscu7W 何で堂々と嘘つく?
嘘言った人謝ってください
嘘言った人謝ってください
690デフォルトの名無しさん
2024/01/19(金) 23:32:10.71ID:EWU8L+d2 >>687はコードを書いたことがないのか
あるいは意図的に嘘ついているのか
あるいは意図的に嘘ついているのか
691デフォルトの名無しさん
2024/01/19(金) 23:44:00.48ID:jOoBVxG+ インターフェースは継承と違ってインターフェースもとのプロパティをオーバーロードして定義し直すから、継承のわけわからん隠蔽されてないプロパティでごっちゃごちゃにならないのがいい(java民)
692デフォルトの名無しさん
2024/01/20(土) 02:15:01.44ID:pJVjc8l1 オブシコくんどこいったん?
インターフェイスは人間が理解しやすくするためのものだと力説しなよ
インターフェイスは人間が理解しやすくするためのものだと力説しなよ
693デフォルトの名無しさん
2024/01/20(土) 02:28:42.63ID:9SMgv4xr 疑似マルチスレッド君も反応ないんやけど、こないならQiita更新してくれよー
694デフォルトの名無しさん
2024/01/20(土) 03:07:14.53ID:ppE6WkEJ695デフォルトの名無しさん
2024/01/20(土) 03:09:43.76ID:ppE6WkEJ696デフォルトの名無しさん
2024/01/20(土) 05:41:23.80ID:OqC8H1ED >>694
そもそもはある具体型A(もしくはクラスA以下同様)の実装が別の具体型Bの実装として継承されることを指すよね
一方でRustのトレイトのデフォルト実装では具体型の実装は全く出て来なくて具体型とは切り離されているよね
したがってある具体型の実装が別の具体型の実装として継承されることは起きないため明確かな
そもそもはある具体型A(もしくはクラスA以下同様)の実装が別の具体型Bの実装として継承されることを指すよね
一方でRustのトレイトのデフォルト実装では具体型の実装は全く出て来なくて具体型とは切り離されているよね
したがってある具体型の実装が別の具体型の実装として継承されることは起きないため明確かな
697デフォルトの名無しさん
2024/01/20(土) 09:43:00.30ID:tKcafxZR 継承用の基底クラスを提供するのはライブラリやフレームワークで、フロント屋はその提供された基底クラスを継承して使う
フロント屋は用意された基底クラスを使う以外はインターフェースやシールドクラスで継承もどきをやるだけで事足りてる
フロント屋は用意された基底クラスを使う以外はインターフェースやシールドクラスで継承もどきをやるだけで事足りてる
698デフォルトの名無しさん
2024/01/20(土) 10:27:27.05ID:mMSNo4e1 staticおじさんが結局正しかったね。
699デフォルトの名無しさん
2024/01/20(土) 10:38:22.56ID:WbtYcj4O うん、知らんけど
700デフォルトの名無しさん
2024/01/20(土) 11:13:01.53ID:ppE6WkEJ >>696
いま思い出したことなんだけど。具体型の継承はできないと思うけど、traitをtraitに実装するということが出来る
traitAにデフォルト実装を書いて、traitBに実装すると、traitBを実装した型はtraitAのデフォルト実装を引き継ぐ
いま思い出したことなんだけど。具体型の継承はできないと思うけど、traitをtraitに実装するということが出来る
traitAにデフォルト実装を書いて、traitBに実装すると、traitBを実装した型はtraitAのデフォルト実装を引き継ぐ
701デフォルトの名無しさん
2024/01/20(土) 11:29:56.55ID:ppE6WkEJ trait TraitA {
fn method_a(&self);
}
trait TraitB {
fn method_b(&self) {
println!("Method B called");
}
}
// TraitBをTraitAを実装するすべての型に対して実装する
impl<T: TraitA> TraitB for T {}
struct MyStruct;
// MyStructにTraitAを実装する
impl TraitA for MyStruct {
fn method_a(&self) {
println!("Method A called");
}
}
fn main() {
let my_struct = MyStruct;
my_struct.method_a(); // TraitAのメソッド
my_struct.method_b(); // TraitBのメソッド(TraitAを実装するため自動的に利用可能)
}
fn method_a(&self);
}
trait TraitB {
fn method_b(&self) {
println!("Method B called");
}
}
// TraitBをTraitAを実装するすべての型に対して実装する
impl<T: TraitA> TraitB for T {}
struct MyStruct;
// MyStructにTraitAを実装する
impl TraitA for MyStruct {
fn method_a(&self) {
println!("Method A called");
}
}
fn main() {
let my_struct = MyStruct;
my_struct.method_a(); // TraitAのメソッド
my_struct.method_b(); // TraitBのメソッド(TraitAを実装するため自動的に利用可能)
}
702デフォルトの名無しさん
2024/01/20(土) 11:37:18.66ID:ppE6WkEJ Rustに多重継承は存在しないという場合、意味的にはフィールドを継承しないことと、
スーパートレイトを使用すれば、トレイトのデフォルト実装を別のトレイトに暗黙では引き継がないことを指すんじゃないかな
かな、というのは、まあここら辺は人によって受け取り方が違うから議論しても仕方のないことなんだけど
スーパートレイトを使用すれば、トレイトのデフォルト実装を別のトレイトに暗黙では引き継がないことを指すんじゃないかな
かな、というのは、まあここら辺は人によって受け取り方が違うから議論しても仕方のないことなんだけど
703デフォルトの名無しさん
2024/01/20(土) 12:00:42.41ID:+uoYRouQ704デフォルトの名無しさん
2024/01/20(土) 12:26:39.60ID:pJVjc8l1 実装継承ではないのか、実装継承における問題が発生しないだけなのか、どっちなんだい?
705デフォルトの名無しさん
2024/01/20(土) 12:38:21.50ID:+uoYRouQ706デフォルトの名無しさん
2024/01/20(土) 12:39:32.26ID:BTn7foKi 実装継承ができないと不便じゃない?
リソース管理を一元化したくなったりとかしないの?
リソース管理を一元化したくなったりとかしないの?
707デフォルトの名無しさん
2024/01/20(土) 12:40:39.50ID:BTn7foKi Rustにも実装継承はあるんじゃないかな
708デフォルトの名無しさん
2024/01/20(土) 12:53:48.29ID:UT8XEnd7709デフォルトの名無しさん
2024/01/20(土) 12:58:32.97ID:S3QqAIL4 ジェネリックで書いてコンパイラに整合性を取らせる
うむ、完璧だ
うむ、完璧だ
710デフォルトの名無しさん
2024/01/20(土) 13:04:04.37ID:BTn7foKi Structの合成があるじゃないか
実装継承の問題が発生しないのはわかったけど
実装継承の便利さが失われてたら元も子もないじゃん
リソース管理を一元化したくなったりとかしないの?
実装継承の問題が発生しないのはわかったけど
実装継承の便利さが失われてたら元も子もないじゃん
リソース管理を一元化したくなったりとかしないの?
711デフォルトの名無しさん
2024/01/20(土) 13:08:56.68ID:BTn7foKi オブシコは機能とデータを一緒に管理することだけど
それができないRustは不便なのでRustは滅びます
それができないRustは不便なのでRustは滅びます
712デフォルトの名無しさん
2024/01/20(土) 13:16:14.55ID:UT8XEnd7713デフォルトの名無しさん
2024/01/20(土) 13:18:48.25ID:BTn7foKi >>712
データにメソッドを生やして継承もできるん?
データにメソッドを生やして継承もできるん?
714デフォルトの名無しさん
2024/01/20(土) 13:20:04.95ID:BTn7foKi オブシコにおいて実装の継承は正義です
Rustに正義はあるのかを問うています
Rustに正義はあるのかを問うています
715デフォルトの名無しさん
2024/01/20(土) 13:34:19.14ID:UT8XEnd7716デフォルトの名無しさん
2024/01/20(土) 13:35:44.30ID:JKkFvgES 誰かさ、適当な文法で単一のC言語ソースファイルを出力するトランスレータ作ってくんない?
仮想関数テーブルとかRTTIとかそれならなんとかなるだろ?
仮想関数テーブルとかRTTIとかそれならなんとかなるだろ?
717デフォルトの名無しさん
2024/01/20(土) 13:36:27.03ID:BTn7foKi じゃあオブシコはオワコンかも知れませんね
718デフォルトの名無しさん
2024/01/20(土) 13:44:22.78ID:tKcafxZR さすがRust有識者だ😳
トレイトへの理解度が高い
トレイトへの理解度が高い
719デフォルトの名無しさん
2024/01/20(土) 14:51:20.08ID:pJVjc8l1 継承はすべてのオブジェクトに共通のデータと手続きを強制するからな
途中で一部しか共通してないオブジェクトの存在が判明したら、
クラスツリーをがっつり再設計しないといけなくなる
こんなものをオブシコに入れちゃったやつの罪は深い
途中で一部しか共通してないオブジェクトの存在が判明したら、
クラスツリーをがっつり再設計しないといけなくなる
こんなものをオブシコに入れちゃったやつの罪は深い
720デフォルトの名無しさん
2024/01/20(土) 15:05:28.23ID:UvH2GUkc >機能とデータを一緒に
カリー化された関数を部分適用すればいい
じゃあ何故カリー化と部分適用はオワコンではないのか
無意味だからだ
意味を見出せないから終わったという判断もできない
カリー化された関数を部分適用すればいい
じゃあ何故カリー化と部分適用はオワコンではないのか
無意味だからだ
意味を見出せないから終わったという判断もできない
721デフォルトの名無しさん
2024/01/20(土) 15:06:09.94ID:ppE6WkEJ 能力の高いプログラマーしかプロジェクトに参加しないこと前提ならば継承の副作用は目立たないけど
Javaのような大規模開発向けの言語に継承を入れたのは間違ってたなあ
Javaの仕様を考えた時は、親クラスは能力の高いエンジニアが書くという前提だったんだろうね
Javaのような大規模開発向けの言語に継承を入れたのは間違ってたなあ
Javaの仕様を考えた時は、親クラスは能力の高いエンジニアが書くという前提だったんだろうね
722デフォルトの名無しさん
2024/01/20(土) 15:25:38.27ID:WbtYcj4O723デフォルトの名無しさん
2024/01/20(土) 15:56:26.55ID:BTn7foKi 大規模開発向けにはRustを採用すべきだ
724デフォルトの名無しさん
2024/01/20(土) 16:02:56.24ID:JKkFvgES アスペクト指向との統一解ってことなのかな
ろくに勉強してないんだけど
ろくに勉強してないんだけど
725デフォルトの名無しさん
2024/01/20(土) 16:28:12.97ID:JKkFvgES もともとアスペクト指向の提唱者たちが言い始めたことだからね
どんなに上手くクラスツリーを設計しても何らかのコードを横断的に埋め込みたくなるニーズがなくならないって
どんなに上手くクラスツリーを設計しても何らかのコードを横断的に埋め込みたくなるニーズがなくならないって
726デフォルトの名無しさん
2024/01/20(土) 17:05:53.11ID:pJVjc8l1 >>722
つまんねーのに無理すんな
つまんねーのに無理すんな
727デフォルトの名無しさん
2024/01/20(土) 23:20:19.94ID:ppE6WkEJ Rustは学習コストが重すぎるからねえ
スタックフレームとか、ライフタイムとか、そこら辺の知識は普通のPGには余計だろう
Rustのスクリプト言語版が出たら流行るかなー
スタックフレームとか、ライフタイムとか、そこら辺の知識は普通のPGには余計だろう
Rustのスクリプト言語版が出たら流行るかなー
728デフォルトの名無しさん
2024/01/21(日) 00:07:59.00ID:bASnz3O7 RustじゃなくてもGoくらいでちょうどいい
729デフォルトの名無しさん
2024/01/21(日) 08:12:46.78ID:yW5L0zfB730デフォルトの名無しさん
2024/01/21(日) 11:29:38.85ID:oaoSrz7+ >>729
俺のことは関係ない、俺は世の中のことを言ってる
そんなことも読み取れない認知能力チンパンジーの分際で
俺様に文句言うなんて100年早えわ
お前はRustだけ頑張ってろアホンダラ
俺は日本の未来を考えとく
俺のことは関係ない、俺は世の中のことを言ってる
そんなことも読み取れない認知能力チンパンジーの分際で
俺様に文句言うなんて100年早えわ
お前はRustだけ頑張ってろアホンダラ
俺は日本の未来を考えとく
731デフォルトの名無しさん
2024/01/21(日) 11:31:12.83ID:oaoSrz7+ Rustの未来も俺が決める
Rustはもっとオブシコ頑張ったが良い
Rustは学習コストが高すぎると言われている
これはオブシコで解決できるはずだ
Rustはもっとオブシコ頑張ったが良い
Rustは学習コストが高すぎると言われている
これはオブシコで解決できるはずだ
732デフォルトの名無しさん
2024/01/21(日) 13:06:59.82ID:JVSLhHIM Rustってそんなに学習コストが高いか?
C++11以降のがトチ狂ってると思うんだけど
C++11以降のがトチ狂ってると思うんだけど
733デフォルトの名無しさん
2024/01/21(日) 13:40:55.67ID:FqjwRk5K スマポより生ポのが気持ちいい
だからわたしは生ポインタ
だからわたしは生ポインタ
734デフォルトの名無しさん
2024/01/21(日) 15:09:59.21ID:LGH4j5ie >>705
>まず実装継承とは具体型の実装が別の具体型に継承されることだから該当しない
これは間違い
実装継承とは文字通り「実装」が「継承」されること <== この意味を理解できるかどうかが重要
実装継承における問題というのはこれも文字通り「実装」が「継承」されることによって起きる
継承元が具体型扱いかどうかは関係ない
>>704
>実装継承ではないのか、実装継承における問題が発生しないだけなのか、どっちなんだい?
Rustのトレイトデフォルト実装は実装継承の一種でもあるし、実装継承ににおける問題も発生する
C++等一部の言語で発生する実装継承における問題の一つが発生しにくいようになってるだけ
>まず実装継承とは具体型の実装が別の具体型に継承されることだから該当しない
これは間違い
実装継承とは文字通り「実装」が「継承」されること <== この意味を理解できるかどうかが重要
実装継承における問題というのはこれも文字通り「実装」が「継承」されることによって起きる
継承元が具体型扱いかどうかは関係ない
>>704
>実装継承ではないのか、実装継承における問題が発生しないだけなのか、どっちなんだい?
Rustのトレイトデフォルト実装は実装継承の一種でもあるし、実装継承ににおける問題も発生する
C++等一部の言語で発生する実装継承における問題の一つが発生しにくいようになってるだけ
735デフォルトの名無しさん
2024/01/21(日) 21:44:12.50ID:r/H1GIpX736デフォルトの名無しさん
2024/01/22(月) 00:42:25.64ID:CM1Sn+EA トレイトはインターフェースとも継承とも違う新しい考え
そこを誤解してはならない
そこを誤解してはならない
737デフォルトの名無しさん
2024/01/22(月) 02:11:51.31ID:d/h6/f8z738デフォルトの名無しさん
2024/01/22(月) 02:24:04.21ID:WDLNMI9J >>737
Rustに実装継承はない
Rustのトレイトのデフォルト実装からは、いわゆるメンバ変数やメンバ関数にアクセスできない
メンバ変数やメンバ関数にアクセスできる部分はトレイトのデフォルト実装から分離されている
その部分はトレイトを実装するときに各型で個別に実装する
したがってRustでは実装継承はなく問題も発生しない
Rustに実装継承はない
Rustのトレイトのデフォルト実装からは、いわゆるメンバ変数やメンバ関数にアクセスできない
メンバ変数やメンバ関数にアクセスできる部分はトレイトのデフォルト実装から分離されている
その部分はトレイトを実装するときに各型で個別に実装する
したがってRustでは実装継承はなく問題も発生しない
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国側が首相答弁の撤回要求、日本側拒否★4 [夜のけいちゃん★]
- 中国側が首相答弁の撤回要求、日本側拒否★3 [夜のけいちゃん★]
- 中国の局長は「両手をポケット」で対峙 宣伝戦で国民に示す ★4 [蚤の市★]
- 被爆者は「怒りが腹の底から湧いてくる」高市首相“非核三原則見直し報道”に被爆地で懸念や憤りの声《長崎》 [1ゲットロボ★]
- 債券・円・株「トリプル安」に…長期金利1.755%まで上昇、円は対ユーロで史上最安値 ★2 [蚤の市★]
- 解体ごみ約2.3トンを山に不法投棄か トルコ国籍解体工を逮捕 埼玉 [どどん★]
- みっちゃん「南鳥島にレイアース資源が眠っているのは皆さんご存知のはずです。そのレイアースを中国が狙ってます」高市 [931948549]
- 精神する時の🏡
- ネトウヨ「中国のものは何もいらない!」 中国人「だったら漢字を使わないでください」 [314039747]
- 【速報】春節の飛行機も欠航ラッシュ 高市早苗終了か [695089791]
- 【悲報】80年前ジャップメディア「軍部に脅されただけなんよ・・・」今ジャップメディア「高市批判する奴は売国奴!」 [616817505]
- 【悲報】中国から輸入した物を食べ、輸入した服を着て、輸入したスマホ弄ってる日本人「中国と戦争するぞ!」 [616817505]
