[過去ログ] C++相談室 part155 (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
859(1): 2021/05/16(日)12:16 ID:P/WMWyL3(1/7) AAS
移譲は……
クラスAをクラスBに所有させたとき、Bの公開したいいいメソッドを逐一クラスAにも書かねばならないのがメドイ
public継承なら継承させるだけで済む
タイピング量の削減は継承で解決すべき問題か、というのはあるが現状はそう
860: 2021/05/16(日)12:17 ID:P/WMWyL3(2/7) AAS
訂正orz、
誤: クラスAをクラスBに所有させたとき
正: クラスBをクラスAに所有させたとき
862: 2021/05/16(日)12:41 ID:P/WMWyL3(3/7) AAS
あとクラスDがクラスBとほぼ共通でBが公開隅でB::foo()を金輪際他の実装を許したくないという3点揃ったケースでは
DをBから継承する他無い
BのインターフェースIBを設けようものならIBを継承してB::foo()の別バージョンを実装してしまうことを阻止できない
873(1): 2021/05/16(日)16:13 ID:P/WMWyL3(4/7) AAS
別に
aとbの大小比較は、
a+0iとb+0iの大小比較としてそのまま複素数でも通用する
874(2): 2021/05/16(日)16:14 ID:P/WMWyL3(5/7) AAS
ちゅか実数クラスRealから複素数クラスComplexを派生させるという話なのに
Realが複素数の比較演算を備えて居なければならないとする前提がおかいし
879: 2021/05/16(日)16:47 ID:P/WMWyL3(6/7) AAS
Realクラスは実数としての単項演算および実数同士の算術演算と比較演算を備えるものとして、
ComplexクラスはRealからComplexへの暗黙の変換(つか単純にコンストラComplex(const Real& src))を備えた上で
複素数の単項演算および複素数同士の算術演算(と必要なら比較演算)を備えたらよろし
まあ特段継承関係にするまでもないかなあという気がしてきたorz
厳密に言ったら虚数単位iを使った実数から複素数への構成的定義はis-a関係ではなくhas-a関係なのでむしろ所有の出番、という見方もできるし、
一方数のクラス、としてみたらReal⊂Complex、なのでRealの方が特殊化という見方もできうる
ぶちゃけ継承するかどうかとは独立に、RealクラスとComplexクラスの自然な共存は上記のように事が済んでしまうということや
880(1): 2021/05/16(日)16:48 ID:P/WMWyL3(7/7) AAS
これが有理数クラスとかだったら普通の人は整数クラス2つを所有するクラスとして設計するであろう、
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.052s