【初心者歓迎】C/C++室 Ver.78【環境依存OK】at TECH
【初心者歓迎】C/C++室 Ver.78【環境依存OK】 - 暇つぶし2ch777:デフォルトの名無しさん
12/06/20 21:39:45.20
↑おまえの負けー

778:デフォルトの名無しさん
12/06/20 21:44:41.05
↑↑↓↓←→←→BA

779:デフォルトの名無しさん
12/06/20 21:47:07.13
ティリティリティ~♪

780:デフォルトの名無しさん
12/06/20 21:51:50.84
ドイツ語でメゾッドと読ませたいならmesodだ

781:デフォルトの名無しさん
12/06/20 22:01:20.13
メソッドもサブクラスもフィールドもC++の標準用語じゃないでしょでしょ
多分C#辺りから渡ってきた人。

782:デフォルトの名無しさん
12/06/20 22:06:59.27
英語でどう呼ぶか、だな

783:デフォルトの名無しさん
12/06/20 22:32:59.33
Member Functionは、流用元となったSimulaのMember Procedureに準じた言葉。
Methodは、SimulaのMember Procedureに対し、MessageとMethodが分離されていて
別物であることを強調したSmalltalkとObjective-Cの用語。
近頃の言語は、そういう背景を踏まえずにMember Procedureと変わらんものを
Method, Methodと連呼する。ちゃんとMessageを実装している言語に失礼だよね。

784:デフォルトの名無しさん
12/06/20 22:53:38.10
勉強になります

785:デフォルトの名無しさん
12/06/20 22:58:42.38
言語の背景でプログラム書くわけじゃない

786:デフォルトの名無しさん
12/06/21 00:25:00.59
プロセジャーとか言い出す講師にあたったときはひどかった

787:デフォルトの名無しさん
12/06/21 05:51:46.07
「プロセージャですよね?」と聞き返すべき

788:デフォルトの名無しさん
12/06/21 08:19:27.01
AVL木と、何にもしてないただの木をC++で実装して、大量のランダムデータをinsertしてremoveする、というのの速度を比較したんですが、
データが500万件を越えたあたりでAVLの方が速く終わるようになりました。
insertくらいは普通の木が常に速いと思ったのに。これって正しいですか?


789:デフォルトの名無しさん
12/06/21 08:36:09.84
>>786
プログラムをプラム、プロシージャをプロセ、アセンブラをアセムって呼ぶ
ICEベンダーの技術者よりはましだと思う。

790:デフォルトの名無しさん
12/06/21 10:01:50.95
あらゆる主要板にスレッド立てられてますなあ
こりゃアフィにも広まるし
完全に日テレはネットに嫌われるね

■モ娘(狼)
日テレ韓国マンセーで遂にGP帯オール一桁wwwwwwwwww
スレリンク(morningcoffee板)

■ニュー速(嫌儲)
最近フジより韓流ゴリ押しの酷い日テレ GP帯(19~23時)視聴率オール一桁達成
スレリンク(poverty板)

【フジ・日テレ死亡】テレビ朝日視聴率3冠おめでとうございます
スレリンク(poverty板)

■ニュース速報
【第二のフジテレビ】日テレ、韓流ゴリ押しで大爆死
スレリンク(news板)

■なんでも実況J
【朗報】韓流ゴリ押しの日テレが低視聴率
スレリンク(livejupiter板)

791:デフォルトの名無しさん
12/06/22 00:36:20.43
State/Strategyパターンや関数ポインタテーブルを使い、動的に呼び出し先を変えるとする。

どうしてもその呼び出し先ごとに異なる変数を与えたい場合、
適当な変数を用意して代入し、呼び出し先で解釈してもらうという手法はアリ?

例えば変数hogeを用意しておいて、Foo(int hoge) と Bar(int hoge) とでは、hogeの意味(使用目的)が異なるとか。

792: ◆QZaw55cn4c
12/06/22 01:57:49.23
>>791
関数ポインタテーブルでごにょごにょ、ならばやったことありますが、十分にありだと思います。
テーブルに載せてる関数のなかで一番たくさん引数をもつものにプロトタイプをあわせていました、泥臭いけど。

宿題スレでやってcodepad にもあげたけれどもみつけられかったごめんなさい。

793:デフォルトの名無しさん
12/06/22 02:00:40.61
>>791
ナシ
呼び出し先によって意味が変わるんじゃ呼び出し側で意味を持たせた引数を指定できない

int f1(int i, int j)
{
 static int v[5] = { 1, 2, 4, 8, 16 };
 return v[i] + v[j];
}

int f2(int i, int j)
{
 return i / j;
}

int main()
{
 int (*pf)(int, int) = 0;
 // pf(1, 0); // f2が呼ばれるならアウト
 // pf(9, 3); // f1が呼ばれるならアウト
}

794:デフォルトの名無しさん
12/06/22 02:04:08.51
状態遷移がわかっていて、引数変える分には、ハマることはないような

795:791
12/06/22 02:58:37.43
>>792-794
ありがとう。意見は割れるかあ。
便利だけど、危険性が伴うからホントどうしようかなと悩んでた。

そりゃ0除算や配列の外側へのアクセスなんかは、数値の範囲チェックをすれば良いだろうけど、
それでも心理的要因などが原因ではまる可能性はあるからなあ。
ぶっちゃけ使ってて気持ち悪いというのが大きいがw

関数ポインタじゃなくてクラスを利用しているなら、キャストを使うことも出来るだろうけど、
それをテーブル等に収めようとすると結局同じ問題が発生するんだよね。

うーん、mapで持たせたほうがスマートかなあ?

796:デフォルトの名無しさん
12/06/22 03:21:50.32
書いてみて試行錯誤するしか
わかってるなら、矛盾した箇所とか出てくるだろうから、そこをどうするかでしょ

797:デフォルトの名無しさん
12/06/22 06:55:44.09
>>791
オブジェクトで実装するのであれば無し。
そもそも、ステートオブジェクトに外から関数の引数で値を渡すんじゃなく、
関数が呼ばれたタイミングでステートオブジェクトに情報を取得させればいい。
情報の取得元は、ステート開始以前にコンストラクターとかであらかじめ指定してやる。

StateA state1( &source1 );
StateB state2( &source1 );
StateC state3( &source2 );

state1.ChangeNextState( &state2 );
state2.ChangeNextState( &state3 );
state3.ChangeNextState( &state1 );

next_state = &state1;
while( next_state ) next_state = next_state->Execute();


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch