2011-02-10

http://anond.hatelabo.jp/20110209221517

Cの場合は使わないからだろ。関数内に関数

というか、Cの場合関数粒度を気にすることが多いからね。

再帰関数 > ループでかけ

たいな感じで、関数コールを嫌う文化からなぁ突き詰めると。

そういう事をしようと思わない。別な書き方をするとかじゃなかろうか?

 

いちおう、C++ならクラス内にクラスは書けるから似たような事はできる。

 

C/C++文化的に速度とメモリ重要視する言語からあんまりね、そう言うのは主流じゃないと思う。

class A{

private:

 int A:

public:

 void set_A(int &a){

  A=a;

 }

}

たいなことも・・・あまり、おすすめできないし・・・。論理的には美しいんだけど・・・いろいろ弊害もあると考えるのがC/C++

ましていわんや、関数内。

※一番痛いのは、設定関数が1箇所なので、動作変更がすぐできる>>大規模システムではコードカバレッジがあるので、

根元の関数の挙動を大きく変えられたら、上位のクラスの莫大なテストやり直しだから、1箇所変更で全箇所変わるのはデメリットw。上位で修正が基本。

というか、やっちゃだめwww。

たとえば、intをdoubleにとかなら、それもう別物だから、上位も変更でしょ。普通・・・。とか。

 

あと#define関数デバッガーでおえないので、なるべくC++コンパイラ通してinlineで書いてぇぇぇぇとか。色々。むしろ#defineで複雑なことしないで

記事への反応 -
  • ちょっとした関数を作る時、一部処理が冗長だなと思っても、 わざわざ外に出して関数化するほどのことでもないよな、とか この関数からしか呼ばないのに、並列に関数を置きたくない...

    • 関数内に関数が書けるのはPascalやLispの頃から出来てたんだよな。 なぜPascalでできていたのにCでは書けなくしてしまったのか、 まあローカル変数にアクセスできないInnter Functionなんてあ...

      • Cの場合は使わないからだろ。関数内に関数。 というか、Cの場合関数の粒度を気にすることが多いからね。 再帰関数 > ループでかけ みたいな感じで、関数コールを嫌う分化だからな...

      • よく知らんけど、単に関数が1級オブジェクトかどうかの違いってことじゃないの? 要するに関数型言語なのかそうじゃないのかの違い。 なんで全部関数型にならなかったのかはもっと...

      • JavaScript ではローカル変数にアクセスできるけど、 たとえできなくても引数で与えればいいだけのように感じられる。 JavaScript の内部関数は this 値が変わるのが面白いよな、that = this な...

    • それ、メンバメソッドっていうんだよね普通は。

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん