- C++相談室 part121 [無断転載禁止]©2ch.net
337 :デフォルトの名無しさん[sage]:2015/12/22(火) 20:52:45.82 ID:c/oP9Kt2 - でもさ、特に再利用されるわけでもない処理を
長くなるからって理由だけで関数に分けるのは無駄だよな void func() { func1(); func2(); func3(); ・・・ func100(); } これでfunc1〜func100がfuncからしか利用されてなかったのなら 分ける意味ないよな 変数名の汚染が怖いなら、ブロックにわければ良いだけだし
|
- C++相談室 part121 [無断転載禁止]©2ch.net
341 :デフォルトの名無しさん[sage]:2015/12/22(火) 21:08:22.05 ID:c/oP9Kt2 - 俺は分けるとしても再利用される可能性が無い処理は
ラムダで関数内関数風にして関数内に封じ込めるけどな 普通の関数やメソッドにしちゃうと名前空間を汚すからね あちこちから呼び出される可能性を残してしまって読む方も困惑する
|
- C++相談室 part121 [無断転載禁止]©2ch.net
343 :デフォルトの名無しさん[sage]:2015/12/22(火) 21:22:21.51 ID:c/oP9Kt2 - オブジェクトの状態が中途半端な状態でreturnしたら始末に終えないから難しいだろうね
一塊な一連の処理というのはどうしても存在するし そのためだけに設計を練り直すのも、それでプログラムが余計複雑な構造になったら馬鹿らしいしね
|
- C++相談室 part121 [無断転載禁止]©2ch.net
345 :デフォルトの名無しさん[sage]:2015/12/22(火) 21:29:09.94 ID:c/oP9Kt2 - 上から下に綺麗に順番に流れていく処理というのは
構造的な複雑さがなければ、長くなっても順番に読んでいけば読めるしね そこでgoto文とかを使って複雑怪奇な制御フローにしちゃうと 誰も読めないよねってだけで 安易に関数やメソッドに分けちゃうと、他の箇所からも呼び出される可能性を残すし 単品で呼びだされてもオブジェクトの状態として不整合が無いように実装するには すごい労力がいるよね ラムダを使って関数内関数にしておけば他所から呼び出される心配がないから楽だよ
|
- C++相談室 part121 [無断転載禁止]©2ch.net
347 :デフォルトの名無しさん[sage]:2015/12/22(火) 21:31:59.16 ID:c/oP9Kt2 - >>344
それでもキャプチャ無しのラムダに分ければ十分だよね
|
- C++相談室 part121 [無断転載禁止]©2ch.net
355 :デフォルトの名無しさん[sage]:2015/12/22(火) 22:28:42.75 ID:c/oP9Kt2 - メンバ数1000とかは彼が一人で言っているだけだからね
そんなものは処理をメソッドに小分けにしたところで 結局その1000個のメンバにアクセスし放題だから、複雑さは一緒だね こういうものは、当たり前だが、処理を関数に分ける以前に まずはデータ構造を小分けにするべきで そうすると勝手に処理も小分けになるケースだね
|
- C++相談室 part121 [無断転載禁止]©2ch.net
356 :デフォルトの名無しさん[sage]:2015/12/22(火) 22:31:13.09 ID:c/oP9Kt2 - 構造体が入れ子になっているのなら
その一つ一つの構造体にデータにまつわる処理をメソッドとして移すのがOOPの基本だろう
|
- C++相談室 part121 [無断転載禁止]©2ch.net
359 :デフォルトの名無しさん[sage]:2015/12/22(火) 22:36:34.04 ID:c/oP9Kt2 - 長い処理を分けるにしても、小分けにした処理を違った順番で呼び出すと
エラーになるようなものは例えprivateだとしてもメソッドとして公開したくはない そう思うのが普通だろう そういう場合は関数内でラムダを定義して関数内関数にして小分けにすればよいわけだ そうすれば一切外部に公開されないし、その関数内でしか呼び出せないのだから安心だわな
|
- オブジェクト指向は愚かな考え。この世は計算式 ★2 [無断転載禁止]©2ch.net
509 :デフォルトの名無しさん[sage]:2015/12/22(火) 23:16:12.47 ID:c/oP9Kt2 - 2chもPerlか何かで書かれていたけどサーバーの負荷が問題になって
C言語で書きなおされたんだったっけか?
|