[過去ログ] 【初心者歓迎】C/C++室 Ver.101【環境依存OK】 [無断転載禁止]©2ch.net (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
536: デフォルトの名無しさん [sage] 2017/08/25(金) 15:13:47.84 ID:g+9HiqWa(1/7) AAS
>>535535(1): デフォルトの名無しさん [sage] 2017/08/25(金) 14:56:45.51 ID:nyf+izFi(1) AAS
>>531
ちょっと聞きたいんだけど、
std::vectorをprivateメンバに持つクラスに、vectorのサイズを返すメンバ関数を作る場合、
返値の型はstd::vector::size_typeにするの?
それとも適当にsize_tとかで返しちゃう?
前者だとprivateメンバの型が外側に漏れてる感じが気持ち悪くて嫌だし、
後者は型が違うのが嫌だから、
autoで返しちゃいたいんたけど、殲滅されるべきなのかな
typedefかusingを使う
555: デフォルトの名無しさん [sage] 2017/08/25(金) 19:21:24.07 ID:g+9HiqWa(2/7) AAS
>そういう面倒なことをクラスのユーザーにさせないため
どんな理屈だよ
vectorをラップしたクラスにat()やoperator[]を設けたらint指定でアクセスするのか
ユーザは負数に成り得る変数を注意しながら使えってか
何のための型だよ
558: デフォルトの名無しさん [sage] 2017/08/25(金) 19:38:41.32 ID:g+9HiqWa(3/7) AAS
>>556556(1): デフォルトの名無しさん [sage] 2017/08/25(金) 19:27:33.63 ID:wHQvIY8a(1) AAS
>vectorをラップしたクラスにat()やoperator[]を設けたらint指定でアクセスするのか
あたりめーだ
真人間ならラップは手段であって目的じゃねーから
>ユーザは負数に成り得る変数を注意しながら使えってか
バカ乙
計算をミスらないことと演算がオーバーフローしないことだけ注意すんだよ
>あたりめーだ
>真人間ならラップは手段であって目的じゃねーから
ごめん、意味分からん
>計算をミスらないことと演算がオーバーフローしないことだけ注意すんだよ
だから、わざわざvector::size_typeなものをintに変換する必要がないじゃないの
0からmax_size()までの範囲なんだからさ
559(1): デフォルトの名無しさん [sage] 2017/08/25(金) 19:40:58.71 ID:g+9HiqWa(4/7) AAS
>>557だからtypedefやusingを使うって話だよ
565(1): デフォルトの名無しさん [sage] 2017/08/25(金) 20:00:01.80 ID:g+9HiqWa(5/7) AAS
>>561?
クラス内に
typedef typename std::vector<T>::size_type size_type
でいいんじゃないの
573(1): デフォルトの名無しさん [sage] 2017/08/25(金) 20:32:27.95 ID:g+9HiqWa(6/7) AAS
>>566566(2): デフォルトの名無しさん [sage] 2017/08/25(金) 20:14:31.61 ID:mWX/padL(17/23) AAS
>>565
vector以外のデータは無いっていう前提?
または、クラスで扱うサイズをすべてそれで統一?
仮にそうだとして、
じゃあ別のクラスのsize_typeや他の型と演算した結果はどういう型にするつもり?
>vector以外のデータは無いっていう前提?
実装を替える必要があるってのは後で作り変えるって意味?それって設計の問題で関係なくね?
静的動的問わずポリモーフィズムするって意味なら最初からそういった設計をするでしょ
今回の話はvectorをラップしているクラスの話でしょ、何で関係ない話を持ち込むの?
>または、クラスで扱うサイズをすべてそれで統一?
size_typeで統一されるならそれでイイんじゃないの?君の言うintに統一と何ら変わらない
それなら内包しているvectorと同じsize_typeを使った方のが余計な記述も減るしバグも減る
>じゃあ別のクラスのsize_typeや他の型と演算した結果はどういう型にするつもり?
それって君の言うint統一でも同じじゃね?
何か話がどんどんズレていない?
576: デフォルトの名無しさん [sage] 2017/08/25(金) 20:51:59.32 ID:g+9HiqWa(7/7) AAS
>>575575(1): デフォルトの名無しさん [sage] 2017/08/25(金) 20:37:36.90 ID:mWX/padL(23/23) AAS
>>573
私の書き込みの前提は >>568 >>569
クラスの中にvectorやlistや他のコンテナのデータもあるかもしれない
それぞれが、コンテナ独自のサイズの型を定義してるかもしれない
コンテナが返すサイズを加工して返すかもしれない
比較的大きなクラスの話
ただvectorを包んだだけなら当然vectorのインターフェースを継承すべき
何その後出しの仮定
取り敢えず、君が幾らでも解釈を広げていくなら話す意味ないわ
それにそのクラス使いたくないわ
絶対何もかも詰め込んだ糞クラスだと思うわ
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 1.385s*