- 1 名前:名前は開発中のものです。 mailto:sage [2009/04/03(金) 11:25:39 ID:aSgRO8Wl]
- タスクシステムについての議論、相談、質問、雑談などのスレです
part5 pc11.2ch.net/test/read.cgi/gamedev/1234977661/ part4 pc11.2ch.net/test/read.cgi/gamedev/1233459490/ part3 pc11.2ch.net/test/read.cgi/gamedev/1226199100/ part2 pc11.2ch.net/test/read.cgi/gamedev/1196711513/ part1 pc11.2ch.net/test/read.cgi/gamedev/1173708588/ ・タスクと呼ばれる実装は、非常に多岐に渡ります 古典タスクシステムについての話題は「>>2」と明示してください そうでない場合はカスタム版であることを明示してください ・人を憎んで言語を憎まず
- 270 名前:名前は開発中のものです。 mailto:sage [2009/04/11(土) 14:51:36 ID:FPJVr62U]
- >>266
ハードの制約は大昔も未来も変わらんよ。 非対称マルチコアに最適なタスク管理とか、最近はそっちの方面に流れてるし 実行環境を一切考慮しない唯一の最適なシステムなんてハードが進化し続ける限り不可能。
- 271 名前:名前は開発中のものです。 mailto:sage [2009/04/11(土) 14:58:23 ID:VwbI10yZ]
- >>269
答えがほしいってなんだよ。 自分でやってみればよいだろ。すぐに問題に気が付くから。
- 272 名前:名前は開発中のものです。 mailto:sage [2009/04/11(土) 14:58:59 ID:lG5C2wBT]
- >>270
唯一最適である必要は無い。適切に分割され、要求に応じて組み合わせられるように なっていればいい。 それなりのサイズの例としては、 C++ 標準ライブラリとか、 C++0x の 乱数発生器フレームワークとか、 shared_ptr, weak_ptr などのスマートポインタ郡とかね。
- 273 名前:名前は開発中のものです。 mailto:sage [2009/04/11(土) 15:10:54 ID:VwbI10yZ]
- だからフレームワークとライブラリは違うってのに。
- 274 名前:名前は開発中のものです。 mailto:sage [2009/04/11(土) 15:34:22 ID:62IWIIqa]
- 開発者のオナヌーか
マルチに使えるライブラリうんまーとかは開発者の自己満足 環境に応じて、ゴリゴリに書け
- 275 名前:名前は開発中のものです。 mailto:sage [2009/04/11(土) 16:07:14 ID:FPJVr62U]
- 再利用性とか保守性とか、プログラムの一般論としては良いこと、なんだけど
ゲームでそれをするコストに見合うケースは少ないからね… MMOのクライアントや定番スポーツゲームとか一部の例外を除く 大部分のゲームは再利用も保守も必要ないケースがほとんど。 続編でも旧プラットフォームで作ったチープな仕様のものを再利用して 現行機にもってくる、なんてことはまず無いし。
- 276 名前:名前は開発中のものです。 mailto:sage [2009/04/11(土) 16:13:26 ID:hS6DOynO]
- >>269
>すぐにタスクシステムなんてものは標準コンテナや仮想関数を持った >インターフェースクラスなどに分解され、残るのはゲーム依存部分となり >システムと呼ぶほどのものは残らなくなるだろう、 何いってんの? あらゆるシステムは分解すればシステムと呼ぶものは残らないのは当たり前。 それら使いを組み立てたものをシステムと呼ぶんだろ。 >>272 >それなりのサイズの例としては、 C++ 標準ライブラリとか、 C++0x の >乱数発生器フレームワークとか、 shared_ptr, weak_ptr などのスマートポインタ郡とかね。 それらを使ってシステムを構築するんだろ。
- 277 名前:名前は開発中のものです。 mailto:sage [2009/04/11(土) 16:56:46 ID:xXQkL000]
- タスクシステムとフレームワーク関係なくね?
フレームワークってハードウェアの差異を抽象化するためのものでしょ。 つまりゲームに特化したOSでしょ。 タスクシステムってハードウェアの差異を抽象化する機能あったか? 単なる自作マルチスレッドライブラリっていう位置づけがせいぜいじゃね。
- 278 名前:名前は開発中のものです。 [2009/04/11(土) 18:20:01 ID:pUi3qAut]
- タスクシステムはゲーム用フレームワークで重要な位置にいるのがわからんのかね。
- 279 名前:名前は開発中のものです。 mailto:sage [2009/04/11(土) 19:04:53 ID:si1b3yop]
- ハリウッドの法則とかしらんのかな
- 280 名前:名前は開発中のものです。 [2009/04/11(土) 20:03:09 ID:H/Wfcxcz]
- このスレのアンチタスク派、頭が悪すぎるだろ。
ろくに実務経験が無いのか、下っ端すぎてゲームライブラリやシステム部分 の製作に参加させてもらえていないのかは知らないが、ゲームの仕様が完全に 決まるまで1行もコード書かない(書けない)とか、いくらなんでもひどいすぎる。
- 281 名前:名前は開発中のものです。 mailto:sage [2009/04/11(土) 21:11:36 ID:FAassbBg]
- 都合の良いレス以外は読めないんですね
- 282 名前:名前は開発中のものです。 mailto:sage [2009/04/11(土) 21:22:43 ID:FAassbBg]
- いくつもタスクシステムと称するものを使ったソースを読んでるけど(学生レベルのカスレベルのプログラマ作のものもあれば、ファミコン時代から今までやってるベテランのも)
経験の差、思想の違いだけじゃなく 同じ人でもプラットフォームや言語が違うだけで タスクシステムの役割や意味するもの、形態が違ってた。 タスクシステムはバズワードでしかない メリットデメリット云々言うのは野暮 あとプロジェクトを特定せずタスクシステムって言葉を使うのは悪だと思う
- 283 名前:名前は開発中のものです。 mailto:sage [2009/04/11(土) 21:25:34 ID:xh1QSD+J]
- つーかアンチは喧嘩したいだけで
真面目に議論する気がないんだから決着着くわけ無いじゃん。
- 284 名前:名前は開発中のものです。 mailto:sage [2009/04/11(土) 21:32:27 ID:xQkqf/c4]
- にしても、前スレだか前々スレだかに居た引数クンのやり方は無い。
あれはキチガイ。
- 285 名前:名前は開発中のものです。 mailto:sage [2009/04/12(日) 00:09:59 ID:dmMqUOrY]
- タスクと聞くとVOWの渡辺タスクを思い出して笑ってしまう
- 286 名前:名前は開発中のものです。 mailto:sage [2009/04/12(日) 12:42:11 ID:BK6ZAbdT]
- >>284
やってないからそう思えるだけ 実は引数を通したほうがバグ数も格段に低くなって結果的に楽 オブジェクト指向なんて役に立たないもの理解してる暇があったら まずは引数をキチンと通す組み方を学ぶべき 簡単なプログラムから「グローバル変数・関数を一切使わない」ルールで 一度組んでみて徐々に仕事でも自分の担当するところだけでも グローバル変数・関数の影響をなるべくうけないように組んでいく これができるだけでプログラマとしてのレベルはそこらにいる奴等とは 比べ物にならないぐらい上がる これができるようになることで汎用化できるものと汎用化できないものの判断ができるようになる (お前等はクズだからこの「汎用化『できないもの』」の判断ってのが苦手っていうかできないだろ?)
- 287 名前:名前は開発中のものです。 mailto:sage [2009/04/12(日) 12:47:22 ID:zCE7iHyh]
- じゃあ、グローバル変数はともかく、
グローバル関数を使わない理由を説明してみ?
- 288 名前:名前は開発中のものです。 mailto:sage [2009/04/12(日) 12:52:49 ID:kray0MQN]
- >>286
>オブジェクト指向なんて役に立たないもの理解してる暇があったら わぉ 構造化プログラム時代のまま20年間時間が止まったままの人がいるよ 80年代のプログラマが現代にタイムスリップですか?
- 289 名前:名前は開発中のものです。 mailto:sage [2009/04/12(日) 13:01:05 ID:dWUYp7ZA]
- >>286
オブジェクトで渡した方がいいじゃん。 どうせアクセサ経由だし、バラバラに引数渡すよりもバグが入らないね。
- 290 名前:名前は開発中のものです。 mailto:sage [2009/04/12(日) 13:26:34 ID:vw2uNoL2]
- スパゲティプログラムをずるずる書くようなレベルの奴が、
オブジェクト指向なんぞに手を出すのは早すぎ、ということを 言い損なってるだけだろ。
- 291 名前:名前は開発中のものです。 mailto:sage [2009/04/12(日) 13:59:53 ID:bCeAm0TS]
- グローバル関数使わない利点が真面目に分からないのだが。
グローバル変数使うなってのは聞いたことあるが。 というか、Cだと基本的にグローバル関数だよな。 てことはC++でメソッドのみで書けってことなんだろうけど、 C++のメンバ変数ってある意味クラス内でのグローバル変数だから、 グローバルがダメならメンバ変数もダメだよな。 てことは一体・・・。 struct hoge { int x, y, z; }; class hoge_funcs { public: static void func1(int &x, int &y, int &z){} static void func2(int &x, int &y, int &z){} }; int main() { hoge h; hoge_funcs::func1( h.x, h.y, h.z ); hoge_funcs::func1( h.x, h.y, h.z ); } こういうことですね、分かります。
- 292 名前:名前は開発中のものです。 mailto:sage [2009/04/12(日) 14:10:03 ID:fR0Z14QS]
- >>288
オブジェクト指向アンチ=構造化プログラミング派ってのは短絡的すぎる それどころかむしろ遅れているよ 最近日本でも関数型言語が注目されるようになってきたけど、 オブジェクト指向もサポートしている関数型言語(ocaml等)でオブジェクト指向を多用されない理由は型システムとの相性だけじゃないんだぜ
- 293 名前:名前は開発中のものです。 mailto:sage [2009/04/12(日) 14:13:21 ID:dWUYp7ZA]
- >>292
CやC++が関数型言語なら話は分かる。
- 294 名前:名前は開発中のものです。 mailto:sage [2009/04/12(日) 14:19:15 ID:fR0Z14QS]
- >>293
違う違う。 何も理解してないから言語にこだわってCやC++が関数型言語ならとか言い出しちゃうんだよ
- 295 名前:名前は開発中のものです。 mailto:sage [2009/04/12(日) 14:27:39 ID:u3tKtjJi]
- >>292
またそのパターンか
- 296 名前:名前は開発中のものです。 mailto:sage [2009/04/12(日) 15:02:02 ID:fR0Z14QS]
- 入力と出力が一致することは大切。
確かにC++では引数ベースで書くとタルいかもしれんが 自動テストとの相性がいいし、メモリ破壊のチェックも楽になる。 あと>>286と他のレスで、 namespace内の関数やstatic関数はグローバル関数か否かの認識がズレてると思われ
- 297 名前:名前は開発中のものです。 mailto:sage [2009/04/12(日) 18:59:10 ID:YzcSj6gj]
- >286
バカだな。 read onlyなら、引数で渡そうがグローバルに置いてあろうが何も変わらない。 その辺のアクセス制御が出来ない無能は、センス無いとしか言いようが無い。
- 298 名前:名前は開発中のものです。 mailto:sage [2009/04/12(日) 19:10:15 ID:kray0MQN]
- その素晴らしいグローバル関数を一切使わない引数方式とやらで作られた商用ゲーム、
今まで見たこと無いので一本でもあれば教えてくれないかなぁ タスク使って作られたゲームはたくさん見たけど、そんな素晴らしい方式が あるなら何で誰も使わないんだろうね。 世界中のゲームプログラマのレベルが君に比べてあまりに低すぎるのかなぁ?
- 299 名前:名前は開発中のものです。 [2009/04/12(日) 19:10:50 ID:p1GdMo7J]
- 結局アクセス制御の概念をもってCでライブラリとか組むとさ、
オブジェクト指向言語を使用して組むのと殆ど変わらない 考え方で組むことになると思うのですが・・・。
- 300 名前:名前は開発中のものです。 mailto:sage [2009/04/12(日) 21:26:04 ID:dWUYp7ZA]
- >>294
言ってる事はカプセル化にしか見えないんだけど.。俺には。
- 301 名前:名前は開発中のものです。 mailto:sage [2009/04/13(月) 01:03:42 ID:UjZc2s3x]
- >>298
そういるルールだからです。 「ぬーやる」バーガーはしってますか?
- 302 名前:名前は開発中のものです。 mailto:sage [2009/04/13(月) 01:07:48 ID:UcN+s1G8]
- グーバル関数使わない君はマダかね?
- 303 名前:名前は開発中のものです。 mailto:sage [2009/04/13(月) 01:54:53 ID:JXX1juts]
- 悪いw
グローバル関数は間違いだなw ただ、ヘッダを一括インクルードして 関数をどこでも使えるようにしてしまう組み方がダメだって話 関数を使う箇所だけでヘッダを呼ぶときと 関数を使わない箇所でもヘッダを呼んでしまうのの違い これに名前ってついてないので説明しにくいが 必要な箇所で必要な分だけインクルードして関数を呼べってこと 簡単に言えばマスターヘッダを作るなってこと がいいたかったw
- 304 名前:名前は開発中のものです。 mailto:sage [2009/04/13(月) 01:59:44 ID:8k8BQB+C]
- そんな当たり前のことを今更自分が発見したように言われてもなぁ…。
- 305 名前:名前は開発中のものです。 mailto:sage [2009/04/13(月) 02:08:23 ID:JXX1juts]
- >>304
じゃ、俺のいう組み方は普通にわかる?
- 306 名前:名前は開発中のものです。 mailto:sage [2009/04/13(月) 02:58:53 ID:ZjFryAkH]
- Cだったらそんなの当たり前なことだと思うけど。
それタスクシステムと関係ないし。
- 307 名前:名前は開発中のものです。 mailto:sage [2009/04/13(月) 05:55:56 ID:JkeYci9k]
- 「俺の組み方」とやらが見えないわけだが
いままでの質疑応答をふまえて一旦書き直してもらえないか
- 308 名前:名前は開発中のものです。 mailto:sage [2009/04/13(月) 06:20:42 ID:JXX1juts]
- >>307
グローバル関数の内容が>>303になるだけ
- 309 名前:名前は開発中のものです。 mailto:sage [2009/04/13(月) 06:23:07 ID:cdFbiK2J]
- グローバル関数禁止でも一括インクルード禁止でもいいけど、
引数云々の話とはどう繋がるんだ? 必要なものだけインクルードしようが、一括でインクルードしようが、 引数の数や種類は一切変わらないと思うんだが。
- 310 名前:名前は開発中のものです。 mailto:sage [2009/04/13(月) 06:35:40 ID:JXX1juts]
- >>309
引数にきちんと渡すことと一括インクルード禁止は両方同時に守らないと アクセスを制限できない
- 311 名前:名前は開発中のものです。 mailto:sage [2009/04/13(月) 06:36:49 ID:JXX1juts]
- もちろんグローバル変数は当然禁止な
- 312 名前:名前は開発中のものです。 mailto:sage [2009/04/13(月) 06:37:56 ID:yXP78EaC]
- 結局C++でやるなら std::list<Task*> とかで充分だしこの方が簡単じゃないか
- 313 名前:名前は開発中のものです。 mailto:sage [2009/04/13(月) 06:41:27 ID:JkeYci9k]
- >>303
そんな2、3スレ前に原型がでたものは今更たどれないし、 当時から見えていても他人は正確に覚えてないだろうから改めてって意味も含めて
- 314 名前:名前は開発中のものです。 mailto:sage [2009/04/13(月) 07:02:40 ID:JXX1juts]
- >>313
いやいや、>>286な
- 315 名前:名前は開発中のものです。 mailto:sage [2009/04/13(月) 07:12:03 ID:JkeYci9k]
- 引数君じゃないの? 引数君の由来になった話が見えないので分からなかった
>>286レベルの話で「グローバル関数使うなは間違いでした」じゃ今更話すべき内容はないな 今時の言語はネームスペースなりパッケージなりあるし、Cは同一関数名のオーバーロードできないだろ
- 316 名前:名前は開発中のものです。 mailto:sage [2009/04/13(月) 09:19:54 ID:7048f93j]
- >>294
そんなことどこにも書いてねーだろw >>310 意味がわからない。 引数ベースでやることによってどういうアクセス制限を実現できるの?
- 317 名前:名前は開発中のものです。 mailto:sage [2009/04/13(月) 09:21:42 ID:7048f93j]
- >>294
そんなことどこにも書いてねーだろw >>310 意味がわからない。 引数ベースでやることによってどういうアクセス制限を実現できるの?
- 318 名前:名前は開発中のものです。 mailto:sage [2009/04/13(月) 09:26:59 ID:7048f93j]
- 二重レススマソ
- 319 名前:名前は開発中のものです。 mailto:sage [2009/04/13(月) 09:37:44 ID:bAffG5gQ]
- >>303
お前の想定しているレベルが低すぎる。 わかりやすく言うと、 高校生相手に、小学生のお前が、幼稚園児で習うことを さも他の奴らがわかってないかのように、 低い説明力で、知識を披露している寒い状況。
- 320 名前:名前は開発中のものです。 [2009/04/13(月) 12:56:31 ID:kqYtrvhC]
- わかってないじゃん
わかってないからグローバル変数使ったり、一括インクルードなんてしちゃうんでしょ?
- 321 名前:名前は開発中のものです。 mailto:sage [2009/04/13(月) 13:17:25 ID:ml16oMx+]
- 名前空間って知ってるか?
- 322 名前:名前は開発中のものです。 mailto:sage [2009/04/13(月) 13:18:02 ID:oo7V00gn]
- はいはい、してねーよカス
- 323 名前:名前は開発中のものです。 mailto:sage [2009/04/13(月) 13:32:50 ID:SRe2zDAR]
- >>319
同意。ちょっと低いと思う。 分割インクルードによるアクセス制限なんて、誰でもやってることでしょ。何をいまさら。 未だ並列君や高専君の方が議論は面白かったぞ。
- 324 名前:名前は開発中のものです。 mailto:sage [2009/04/13(月) 15:24:05 ID:7048f93j]
- >>323
突っ込み所が違う気ガス 分割インクルードをアクセス制限だなんて言い出すのはマズいよ
- 325 名前:名前は開発中のものです。 mailto:sage [2009/04/13(月) 17:02:17 ID:SRe2zDAR]
- >>323
まぁね。分割インクルードの一番の目的は単体テストができるように癒着を無くす事だもんね。 ヘッダ分割することでアクセス制限を掛ける効果もあるが、あまりに当たり前すぎる事を>>303がさも自分流だと語りだしたのでびっくりしたんさ。
- 326 名前:名前は開発中のものです。 [2009/04/13(月) 20:04:51 ID:kqYtrvhC]
- それならそれがとても大事なことだってのはわかるよね?
このルールを破ってはいけないんだ windows.hを作った人はボケだったけどまねしちゃ駄目なんだ 必要なところで必要なものだけ呼ぶんだ
- 327 名前:名前は開発中のものです。 [2009/04/13(月) 20:15:21 ID:kqYtrvhC]
- まあ、あんまりないとは思うけど
必要なものが呼べてないソースも駄目だぞ さらにこれから必要かもしれない希望的観測も駄目だ キッチリ必要なもののみな 言うのは楽だけどできるかい?
- 328 名前:名前は開発中のものです。 mailto:sage [2009/04/13(月) 20:26:29 ID:JkeYci9k]
- >>319をもう一回読もうか
- 329 名前:名前は開発中のものです。 [2009/04/13(月) 21:22:47 ID:BT19AMT2]
- 引数がどうの言ってるキチガイと
HSPしか使えないゲームも作ったことないド素人は どっか行ってくんねえかな
- 330 名前:名前は開発中のものです。 mailto:sage [2009/04/13(月) 21:33:38 ID:JXX1juts]
- >>328
いや、お前は知ってるだけ 理解してるとは天と地の差がある だからタスクシステムなんて使うんだ
- 331 名前:名前は開発中のものです。 mailto:sage [2009/04/13(月) 21:48:38 ID:oo7V00gn]
- タスクシステムとどういう関係があるんだ?
- 332 名前:名前は開発中のものです。 mailto:sage [2009/04/13(月) 21:56:36 ID:ZjFryAkH]
- >>330
どこかのサンプルでタスクシステムって紹介されてるものを、 グローバル変数、一括インクルードなしに改良してみろよ。 できるから。
- 333 名前:名前は開発中のものです。 mailto:sage [2009/04/13(月) 22:00:08 ID:oo7V00gn]
- >>330
がんばれよ
- 334 名前:名前は開発中のものです。 mailto:sage [2009/04/13(月) 22:07:18 ID:SRe2zDAR]
- ID:JXX1jutsは凄いのぅ。きめつけで知ってるだけとかどんだけ上からなんだよ。
PG歴と過去にどんな環境でのPGを経験しているのか是非知りたいぜ。 で、このスレの住人スキルレベルをどう想定しているのかを挙げてもらってから、また>>319を読んでくれ。
- 335 名前:名前は開発中のものです。 mailto:sage [2009/04/13(月) 22:18:46 ID:JXX1juts]
- じゃあ、みんな引数はちゃんと使うしグローバル変数も
一括インクルードも無しで組めてるんだね? シングルトンとか意味不明なこと言い出すのもダメだぞ
- 336 名前:名前は開発中のものです。 [2009/04/13(月) 22:35:00 ID:Q6R94BGZ]
- C言語前提だけど、グローバル変数はまったくなくても大丈夫だな。
モジュール内で共通して使用するステータスはstaticで作り、 ヘッダには記載しないことによりカプセル化する。 一括インクルードはアプリケーション向けには作ると便利。 テストは個別にテストできるようにモジュール毎に分けておく。
- 337 名前:名前は開発中のものです。 [2009/04/13(月) 22:37:14 ID:Q6R94BGZ]
- 追記
どこのモジュールからも参照できるグローバル変数は作らないという観点で書きました。
- 338 名前:名前は開発中のものです。 mailto:sage [2009/04/13(月) 22:41:33 ID:GUql8Y/z]
- 引数をちゃんと使うってのがどんなのかわからんな
全ての関数はリエントラントじゃなきゃ駄目とかか?
- 339 名前:名前は開発中のものです。 mailto:sage [2009/04/13(月) 22:46:11 ID:JXX1juts]
- >>338
何?リエ・・・? あんまり横に長い言葉使うと俺に伝わらないぞ
- 340 名前:名前は開発中のものです。 mailto:sage [2009/04/13(月) 22:46:47 ID:8k8BQB+C]
- >335
自分が出来ていないことを、それとなく出来ているのかどうか周りに確認してる小心者乙www
- 341 名前:名前は開発中のものです。 mailto:sage [2009/04/13(月) 22:50:41 ID:JXX1juts]
- >>340
お前みたいにやりもしないではじめから舐めてかかってる奴に限って 早々に妥協して一生理解することないんだよねw
- 342 名前:名前は開発中のものです。 mailto:sage [2009/04/13(月) 22:55:12 ID:8k8BQB+C]
- >341
『オレさまスゲー』とか思っちゃってるんですねwww ハイハイw、ID:JXX1jutsサマはすごい才能の持ち主で努力家でもありますデスよwww
- 343 名前:名前は開発中のものです。 mailto:sage [2009/04/13(月) 23:17:49 ID:ml16oMx+]
- ID:JXX1juts 議論は出尽くしたな。
ハイ次の方どぞー。
- 344 名前:名前は開発中のものです。 mailto:sage [2009/04/13(月) 23:24:55 ID:SoFywSmj]
- HSP使いは厨房っぽかったけど、こんどの引数君は
おっさんの中に小学生がまじってる、みたいな格差を感じる…
- 345 名前:名前は開発中のものです。 mailto:sage [2009/04/13(月) 23:28:22 ID:JXX1juts]
- 技術的なことなにも答えないで煽りだけして終わり?
っていうか俺のいうことくだらないと思ってるとマジで伸びないぞ 引数も使いこなせない奴にオブジェクト指向触らせるなと言いたい 意味ないからホント自分の組んでるものが意味あるのか? 無いのか判断つかない状態でプログラム組んでる奴マジで多いだろ?
- 346 名前:名前は開発中のものです。 mailto:sage [2009/04/13(月) 23:40:24 ID:GUql8Y/z]
- >>345
じゃあ横に長いとか言ってないで答えてくれ つかシングルトンと長さ変わらないし。カタカナでも一文字差だし
- 347 名前:名前は開発中のものです。 mailto:sage [2009/04/13(月) 23:45:51 ID:SoFywSmj]
- あまりにレベル格差があるから小学生かと思ったけど
もしかしたらBASICが行番号使ってたころの時代錯誤のロートルかな? まぁ20年ぐらい昔はBASICとかFORTRANからCに移行したプログラマで 引数使わずにグローバル変数使ってるのが居るって噂を聞いたことがあるが… いまどきそんな化石プログラマ探しても見つからんよ。
- 348 名前:名前は開発中のものです。 mailto:sage [2009/04/13(月) 23:53:17 ID:SRe2zDAR]
- 俺も昔Cしか使えないコンシューマでOOPもどきで書いたなぁ。あれは正直時間の無駄だ。
C++使えば継承・派生・仮想関数使えるから、コードの記述量が3倍ぐらいに膨れ上がる
- 349 名前:名前は開発中のものです。 mailto:sage [2009/04/13(月) 23:54:21 ID:JXX1juts]
- >>348
はい、嘘 書き比べたことないだろ?
- 350 名前:名前は開発中のものです。 mailto:sage [2009/04/13(月) 23:54:32 ID:SRe2zDAR]
- あ、書き途中でゴメン。
C++使えば継承・派生・仮想関数使えるのに、それでもカプセル化にこだわってCのみで書こうとしたら コードの記述量が3倍ぐらいに膨れ上がったわ。 初心者にはオススメできないぜ。
- 351 名前:名前は開発中のものです。 mailto:sage [2009/04/13(月) 23:58:40 ID:SRe2zDAR]
- そうだね。書き比べたことはない。そんな無駄な手間はしない。
コード量は3倍にもならないかも知れないが、2倍にはなってたと思うぞ。 ただ、体感で保守量が3倍以上にはなってた。同じコードは2度書くなとはよく言ったものな〜。 あれは地獄だった。
- 352 名前:名前は開発中のものです。 mailto:sage [2009/04/13(月) 23:59:45 ID:8k8BQB+C]
- >345
> っていうか俺のいうことくだらないと思ってるとマジで伸びないぞ 当たり前のことをさも自分が発見したように語られてもなぁ…www
- 353 名前:名前は開発中のものです。 mailto:sage [2009/04/14(火) 00:02:46 ID:S7vD9cWE]
- CでOOPもどきのソース見たときあるが、関数名が長かったな。
- 354 名前:名前は開発中のものです。 mailto:sage [2009/04/14(火) 00:10:09 ID:EDBoOJMk]
- >>351
アレアレ? 数字が変わってきちゃったよ?w 実際やってみりゃわかるがほとんど差はでない っていうか全く差がでない
- 355 名前:名前は開発中のものです。 mailto:sage [2009/04/14(火) 00:13:01 ID:3FXKgyjE]
- >それでもカプセル化にこだわってCのみで書こうとしたら
と書いてるんだが・・・。 この意図が読めてないん?
- 356 名前:名前は開発中のものです。 mailto:sage [2009/04/14(火) 00:42:01 ID:Xd02NGTo]
- もう何でもいいから、軽くその引数とカプセル化使った
弾幕かなんかのソース出したら話が早いじゃん。 ソース見たら一発だろ。こいつがなに言いたいのかさっぱり分からんし。
- 357 名前:名前は開発中のものです。 mailto:sage [2009/04/14(火) 00:46:32 ID:Xd02NGTo]
- 上のは >>345 へのレスね。
- 358 名前:名前は開発中のものです。 mailto:sage [2009/04/14(火) 00:47:45 ID:S7vD9cWE]
- Cでカプセル化するとこんな感じか?
// h struct player_t; extern void player_construct(struct player_t*); extern void player_set_x(struct player_t*,int); extern void player_set_y(struct player_t*,int); extern int player_get_x(struct player_t*); extern int player_get_y(struct player_t*); extern void player_move(struct player_t*);
- 359 名前:名前は開発中のものです。 mailto:sage [2009/04/14(火) 00:48:50 ID:S7vD9cWE]
- // c
struct player_t { void (*move)(player_t*); int x; int y; }; void player_construct(struct player_t* player) { player->move = &player_move00; } void player_set_x(player_t* player,int x) { player->x = x; } void player_set_y(player_t* player,int y) { player->y = y; } int player_get_x(player_t* player) { return player->x; } int player_get_y(player_t* player) { return player->y; } void player_move(player_t* player) { (*player->move)(player); }
- 360 名前:名前は開発中のものです。 mailto:sage [2009/04/14(火) 01:17:30 ID:X5T3ILnL]
- >>358
例ならこれでいいんじゃね。使ったことないけど。 ttp://www.sage-p.com/process/cool.htm 他にはDirectXでおなじみのCOM。
- 361 名前:名前は開発中のものです。 mailto:sage [2009/04/14(火) 03:21:18 ID:2Zsr/zIR]
- >>354
おいカス。お前がCで C++と同様の効率が良い仕組みのポリモフィズムを書いてみて 差が出るのを実感しろバカが。
- 362 名前:309 mailto:sage [2009/04/14(火) 05:42:07 ID:H+OqGA0n]
- >>310
一括インクルードとアクセス制限がどう関係するんだ? 必要かどうかを判断してインクルードするのは、そのヘッダ(のクラスや関数)を使う側なんだから、 インクルードするヘッダによってアクセスを制限するのは無理がある。 一々使用者のソースを確認して「このヘッダはインクルードしないでください」と言って回るのか? アクセスされたら困る関数や変数は最初から公開しない。それだけの話だろ。 一括インクルードを避けることと、アクセス制限とでは、話のレイヤが違うと思うが。 一応確認しておくけど、もともと非公開のプライベートヘッダを取り込むような マスターヘッダを想定してるわけじゃないよな?
- 363 名前:名前は開発中のものです。 mailto:sage [2009/04/14(火) 07:07:31 ID:EDBoOJMk]
- >>362
頭悪いなお前
- 364 名前:名前は開発中のものです。 mailto:sage [2009/04/14(火) 07:22:56 ID:qdpCjwYR]
- >362
なんでそんな、一括インクルードしてナンデモカンデモやろうとするようなコードを書くのかね?
- 365 名前:名前は開発中のものです。 [2009/04/14(火) 07:26:47 ID:0xCIIVMv]
- ドキュメントも読んだこと無さそうだよね
使うクラスや関数のヘルプに必要なヘッダ書いてあるだろ
- 366 名前:名前は開発中のものです。 [2009/04/14(火) 07:35:20 ID:0xCIIVMv]
- >>361
差なんかでないっていってんだろクソが そんなもんいくら使ったって実装しなきゃいけない機能は変わらないんだよ 余計なコード増やしてんじゃねぇよ
- 367 名前:名前は開発中のものです。 mailto:sage [2009/04/14(火) 07:43:22 ID:6uoqgqQs]
- マジキチっぽいからスルー推奨
ここまでレベル下がるとどうしようもない
- 368 名前:名前は開発中のものです。 [2009/04/14(火) 08:39:45 ID:0xCIIVMv]
- そうやって自分に説明できないことをキチガイ扱いばかりしてると
なんも見えてこないぞ 実はオブジェクト指向はなんの役にも立たない
- 369 名前:名前は開発中のものです。 mailto:sage [2009/04/14(火) 08:41:50 ID:royMBBy8]
- >>367
俺なんかスルーされちゃったから絡みたくても絡めないぜ
- 370 名前:名前は開発中のものです。 mailto:sage [2009/04/14(火) 09:00:22 ID:3ekdPJzf]
- >>368
>実はオブジェクト指向はなんの役にも立たない 世界中のオブジェクト指向を使ってるプログラマより 君の方が正しい、とはどー考えても思えないなぁ 単に君の技術レベルが低すぎるだけにしか見えない。
|

|