[過去ログ]
C++相談室 part155 (1002レス)
C++相談室 part155 http://mevius.5ch.net/test/read.cgi/tech/1616555235/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
929: デフォルトの名無しさん [sage] 2021/05/17(月) 17:16:13.81 ID:cCPUzk2p C++20のコード晒せるところ、どっかある? ideoneやcodepadはダメだった http://mevius.5ch.net/test/read.cgi/tech/1616555235/929
930: デフォルトの名無しさん [sage] 2021/05/17(月) 17:58:51.81 ID:v7SqzMPT wandbox http://mevius.5ch.net/test/read.cgi/tech/1616555235/930
931: デフォルトの名無しさん [sage] 2021/05/17(月) 18:24:20.71 ID:rt013aFx >>863 複素数より実数の方が演算が広いから複素数を継承して実数を作る 継承してメンバ関数を増やす 作り方として適切かどうかはともかくとして、 例としては何も間違ってないと思うのだが http://mevius.5ch.net/test/read.cgi/tech/1616555235/931
932: デフォルトの名無しさん [sage] 2021/05/17(月) 18:34:03.64 ID:rt013aFx C++的に複素数に順序を取り入れるなら 辞書的順序が一番使われ方として多いかと コンテナに入れるのに順序が必須な場合とか std::pair < double, double > これだって勝手に定義される C/C++に数学的な汎用性が必須ではないのは C/C++をやっていればわかると思う 1./-0. < 1./0. とか pow(0,0) = 1 とか数学的には明らかにおかしいでしょ http://mevius.5ch.net/test/read.cgi/tech/1616555235/932
933: デフォルトの名無しさん [sage] 2021/05/17(月) 18:51:12.32 ID:pyZ7P5gV まあ辞書順は可能だぬ http://mevius.5ch.net/test/read.cgi/tech/1616555235/933
934: デフォルトの名無しさん [sage] 2021/05/17(月) 19:28:02.39 ID:xbubPeOw >>931 c++のpublic継承は継承先クラスを継承元クラスと同じものとして扱うので、特性の包含性が重要。 なので、失われる特性があるなら継承はしないほうが良い。 上でも挙がっているけど、複素数は実数の全順序性という特性が失われるので継承はしないほうが良い。やるなら無限体を継承元クラスにすべきだわな。 http://mevius.5ch.net/test/read.cgi/tech/1616555235/934
935: デフォルトの名無しさん [sage] 2021/05/17(月) 19:49:53.27 ID:pZGof8k7 >>910 ブルバギじゃなくて? http://mevius.5ch.net/test/read.cgi/tech/1616555235/935
936: デフォルトの名無しさん [] 2021/05/17(月) 20:09:19.46 ID:FZJkNpOI 正多面体と素数 https://www.youtube.com/watch?v=E-48ent631o http://mevius.5ch.net/test/read.cgi/tech/1616555235/936
937: デフォルトの名無しさん [sage] 2021/05/17(月) 20:11:40.34 ID:PX9GndkV 何のスレやねん http://mevius.5ch.net/test/read.cgi/tech/1616555235/937
938: デフォルトの名無しさん [sage] 2021/05/17(月) 20:51:22.31 ID:pyZ7P5gV >>934 継承したからといって継承元クラスで定義される演算を継承したクラスにも引き継がねばならない理由は無い 演算子のオーバーロードと型変換関連のコンストラクタまたはキャスト演算子を定義したら 同じ演算子に対してパラメータの型毎に許す演算と許さない演算を任意に設定できる 特にComplexクラスからRealクラスを派生させた場合は (この場合は|z|やarg(z)といった複素数の演算子がReal以外の実数を返すComplexのメソッドとすることになりそうだがそれはおくとして ある意味話は簡単で、Complex同士のoperator<()の一族を定義せずにおもむろにReal同士でだけ定義するだけにしたらええんじゃ つか個人的にカナーリ疑問なのですだが、AがBの真部分集合であることと、 Aを表すのクラスとBを表すクラスの継承関係は一体追求すべき何の関係があるん?? http://mevius.5ch.net/test/read.cgi/tech/1616555235/938
939: デフォルトの名無しさん [] 2021/05/17(月) 21:58:18.14 ID:SfcIGFpx 継承元として振る舞えるのはポリモーフィズムの必須要件じゃない? 親クラスとして振る舞えなくなる子クラスとか存在価値ないでしょ http://mevius.5ch.net/test/read.cgi/tech/1616555235/939
940: デフォルトの名無しさん [sage] 2021/05/17(月) 22:27:35.19 ID:rt013aFx >>934 は? 複素数を継承して実数を作る という話だけど http://mevius.5ch.net/test/read.cgi/tech/1616555235/940
941: デフォルトの名無しさん [sage] 2021/05/17(月) 22:36:00.22 ID:pyZ7P5gV >>939 実数を複素数としてふるまわせたいならRealをComplexに型変換したら済むので継承やポリモーフィズムは必須ではない >>938の問いに戻るがなんで集合としての包含関係をそう執拗に継承関係に反映させようとするんじゃ…… だいたい実数から複素数を作る演算(|z|とarg(z)で複素数zを作る)もあるし 複素数から実数を作る演算(|z|やarg(z))があるから変換は双方向的なので、 この場合派生クラスから基底クラスへの一方的変換だけでは片手落ちなのは明白 無理矢理やったら>>938に書いたみたく|z|やarg(z)といった複素数の演算子がReal以外の実数を返すみたいなgdgdな話に…… http://mevius.5ch.net/test/read.cgi/tech/1616555235/941
942: デフォルトの名無しさん [sage] 2021/05/17(月) 22:39:11.47 ID:rt013aFx >>941 おまえ文系だろ >>939に「ポリモーフィズムは必須」なんて書いてない http://mevius.5ch.net/test/read.cgi/tech/1616555235/942
943: デフォルトの名無しさん [sage] 2021/05/17(月) 23:00:01.22 ID:hwY+PVbw >>938 >継承したからといって継承元クラスで定義される演算を継承したクラスにも引き継がねばならない理由は無い さすがに演算が別物レベルで違うのはc++のpublic継承を使うべきじゃない。 public継承は継承元クラスのポインタ変数・参照として使えるという意思表示でもある。使えると言っているのに使えないのはクラスのユーザーを混乱させるし、コンパイラとかからの支援も期待できなくなる。 継承元か継承先かを意識してプログラムしなきゃいけないのは典型的な「継承の危険な使い方」だよ。 http://mevius.5ch.net/test/read.cgi/tech/1616555235/943
944: デフォルトの名無しさん [sage] 2021/05/17(月) 23:17:51.34 ID:hwY+PVbw >>940 えっ、そうなの? それなら継承の問題は無いと思うけど、継承を使うメリットある? c++だと性能的に不利な気が。 浮動小数から整数を継承するのと似たような臭いがする。 http://mevius.5ch.net/test/read.cgi/tech/1616555235/944
945: デフォルトの名無しさん [sage] 2021/05/17(月) 23:39:13.83 ID:GYmzER1r 浮動小数と整数は継承関係にない代わりに個別に暗黙変換のルールが作り込まれているわけだから 同列には語れんような。 http://mevius.5ch.net/test/read.cgi/tech/1616555235/945
946: デフォルトの名無しさん [sage] 2021/05/17(月) 23:53:21.28 ID:rt013aFx >>944 元は>>846 >>863が逆だと勘違いしたんだろうねえ そこから中身のないプライドを保つ為だけの書き込み多数 http://mevius.5ch.net/test/read.cgi/tech/1616555235/946
947: デフォルトの名無しさん [sage] 2021/05/18(火) 00:42:41.50 ID:pJ71QEbf >>946 お前頭悪いって良く言われるっしょ http://mevius.5ch.net/test/read.cgi/tech/1616555235/947
948: デフォルトの名無しさん [sage] 2021/05/18(火) 01:40:04.12 ID:FUhBCUlD ここまでのアホみたいな流れは全部>>793のクソコードのせいにして終わり終わり http://mevius.5ch.net/test/read.cgi/tech/1616555235/948
949: デフォルトの名無しさん [sage] 2021/05/18(火) 02:05:36.55 ID:0A1+AcfP >>942 >939 は >938 に反論する形で 継承元(Complex)として振る舞えるのは(Realが満足すべき)ポリモーフィズムの必須要件、 と言っているのだから >ポリモーフィズムは必須」なんて書いてない なんて大嘘 http://mevius.5ch.net/test/read.cgi/tech/1616555235/949
950: デフォルトの名無しさん [sage] 2021/05/18(火) 02:07:04.04 ID:0A1+AcfP 全く>>946はこの問題でいっぱいレスしている割にガチで頭悪いのではないか http://mevius.5ch.net/test/read.cgi/tech/1616555235/950
951: デフォルトの名無しさん [sage] 2021/05/18(火) 06:07:46.07 ID:M8tLf7N/ https://wandbox.org/permlink/s41huF7EOozhWME2 これの実行結果なんだけど 何で == になるのか誰かわかる? http://mevius.5ch.net/test/read.cgi/tech/1616555235/951
952: デフォルトの名無しさん [sage] 2021/05/18(火) 07:35:31.53 ID:iJzvlnxx <=>使ったことないけど==は自分で定義しとかないといかんらしいぞ あとこれ仮想関数にする必要あるのか疑問(無駄にサイズ増えるし。あと継承もいらん気がする http://mevius.5ch.net/test/read.cgi/tech/1616555235/952
953: デフォルトの名無しさん [sage] 2021/05/18(火) 07:37:05.89 ID:M8tLf7N/ <=>から==を導出させるには=default;しなきゃいけないんだけど =default;した関数の内容を独自なものにするには virtualで上書きするくらいしか思いつかない http://mevius.5ch.net/test/read.cgi/tech/1616555235/953
954: デフォルトの名無しさん [sage] 2021/05/18(火) 07:40:16.15 ID:iJzvlnxx わからんけど、そのpointの大きさ(内積してsqrt)で比較するようなコードをコンパイラが勝手に作ってくれるのけ http://mevius.5ch.net/test/read.cgi/tech/1616555235/954
955: デフォルトの名無しさん [sage] 2021/05/18(火) 07:43:09.23 ID:RvkfiLpS メンバの辞書式順序で比較するコードを勝手に作ってくれる http://mevius.5ch.net/test/read.cgi/tech/1616555235/955
956: デフォルトの名無しさん [sage] 2021/05/18(火) 07:44:12.47 ID:M8tLf7N/ そんなわけないと思うからこそ=default;した関数の内容を独自の内容に変更したい http://mevius.5ch.net/test/read.cgi/tech/1616555235/956
957: デフォルトの名無しさん [sage] 2021/05/18(火) 07:45:11.32 ID:M8tLf7N/ メンバの辞書式順序と違う定義にはできんの? http://mevius.5ch.net/test/read.cgi/tech/1616555235/957
958: デフォルトの名無しさん [sage] 2021/05/18(火) 07:47:15.02 ID:iJzvlnxx だから==も書かないといけないんじゃね 多分だけど、そのpointの==は中身point_baseの比較しかしてないんでしょ http://mevius.5ch.net/test/read.cgi/tech/1616555235/958
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 44 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.014s