1 名前:デフォルトの名無しさん mailto:sage [2021/01/08(金) 17:54:00.55 ID:0DW9z0rL.net] ※前スレ C++相談室 part153 https://mevius.5ch.net/test/read.cgi/tech/1602339500/ テンプレここまで
2 名前:デフォルトの名無しさん [2021/01/08(金) 17:56:28.28 ID:GG1sOSQC.net] おつかれー
3 名前:デフォルトの名無しさん mailto:sage [2021/01/08(金) 19:34:40.54 ID:hBRzO/B9.net] STLつかうと一気に実行ファイルサイズが10倍に?! 環境によるだろ。 俺はBorland-C++5.6.2に -D_RTLDLL オプションを指定して、極力 ランタイムを使用するようにして使っているが、例えばstd::vectorを 使っても使わない時と比べ10Kほどしか増えない すげえ。ダイナミックリンクしといてファイルサイズが増えないとかいってるよ。この人。 C1010: プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました。 とかいうエラーが出るんだけどこれってどうすればいいの? #include <stdafx.h> 後死ね。 言葉が悪いな。それで教えているつもりか。 まぁヒントぐらいにはなったな。 うむごくろう。
4 名前:デフォルトの名無しさん mailto:sage [2021/01/08(金) 19:38:13.11 ID:8XBZO/70.net] operator->*を好き勝手にオーバーロードするのは C++厨二病なら誰しもが通る道だと思ってる
5 名前:デフォルトの名無しさん mailto:sage [2021/01/08(金) 20:05:42.45 ID:gKD5AY0L.net] 厨二病以下だね沼二病か幼長病レベル
6 名前:デフォルトの名無しさん mailto:sage [2021/01/08(金) 20:33:39.47 ID:eZ2LT3hD.net] >>3 お前が死ね
7 名前:デフォルトの名無しさん [2021/01/08(金) 20:55:30.03 ID:lmjqKHzd.net] だって演算子オーバーロード楽しいし! それSpirit作者のジョエルさんにも言えるの?
8 名前:デフォルトの名無しさん mailto:sage [2021/01/08(金) 21:03:27.15 ID:NkKDsd1u.net] % を三次元ベクトルのクロス積にするのはかつて自分も思いついたけど、勧められないって立場の人も居て 演算子オーバーロードが自然かそうでないかってのは人に拠るなと思った 自分の価値観で言えばiostreamの >> とかってあんまり自然じゃないが 他に何がいいかって言われてもないので仕方ない
9 名前:デフォルトの名無しさん mailto:sage [2021/01/08(金) 21:08:29.47 ID:gKD5AY0L.net] <filesystem>のディレクトリ区切りがoperator/なのとかオモロイやん
10 名前:デフォルトの名無しさん [2021/01/08(金) 21:17:01.55 ID:U7HVBqAl.net] 絵文字プログラミングが来る なので独自オペレータは出来た方がいい
11 名前:デフォルトの名無しさん mailto:sage [2021/01/08(金) 21:44:49.24 ID:gxkYqo9D.net] >>4 わしは20年ぐらい前にその道を通った だから若者がその道を通ることについては何もいわない ほっといて気がつかないならダメ人材だし 使える人材は自分で気がつく
12 名前:デフォルトの名無しさん [2021/01/09(土) 00:35:22.39 ID:8yDnsj0x.net] キーワードも再定義可能にしてホスイ
13 名前:デフォルトの名無しさん mailto:sage [2021/01/09(土) 01:15:10.33 ID:CT/R4i5r.net] #defineでイケるやろ
14 名前:デフォルトの名無しさん [2021/01/09(土) 01:39:13.52 ID:InkVVK6p.net] #define private public ってテクニックのことか。
15 名前:デフォルトの名無しさん mailto:sage [2021/01/09(土) 04:17:16.54 ID:kjQQkk+g.net] >>14 それコンパイル通っちゃうの? プリプロセスだからOKなのか・・・
16 名前:デフォルトの名無しさん mailto:sage [2021/01/09(土) 09:21:23.56 ID:c2CH7ey/.net] キーワードをdefineするのは規格上は未定義動作 でもだいたい通っちゃうな
17 名前:デフォルトの名無しさん mailto:sage [2021/01/09(土) 09:27:02.27 ID:lvRTpcj7.net] その条文どこだっけ
18 名前:デフォルトの名無しさん mailto:sage [2021/01/09(土) 10:07:37.60 ID:c2CH7ey/.net] この辺かなC++20ドラフトより 16.5.1.2 Headers [headers] 8 Identifiers that are keywords or operators in C++ shall not be defined as macros in C++ standard library headers. (標準ライブラリはキーワードをマクロにすんな) 16.5.4.3.2 Macro names [macro.names] 2 A translation unit shall not #define or #undef names lexically identical to keywords, to the identifiers listed in Table 4, or to the attribute-tokens described in 9.12, except that the names likely and unlikely may be defined as function-like macros (15.6). (キーワード・文脈依存キーワード・予約済み属性トークン(ただしlikelyとunlikelyを除く)をdefineやundefすんな)
19 名前:デフォルトの名無しさん mailto:sage [2021/01/09(土) 11:17:12.79 ID:lvRTpcj7.net] thx
20 名前:デフォルトの名無しさん [2021/01/09(土) 20:30:21.03 ID:w9vYk25X.net] >>13 何言ってんだおめー;;;
21 名前:デフォルトの名無しさん mailto:sage [2021/01/09(土) 21:18:55.59 ID:jpx8Mcv4.net] C++はプリプロセッサが発展する方向にいかなくて本当に良かった プリプロセッサを吸収して凄いことになってる気はするが
22 名前:デフォルトの名無しさん mailto:sage [2021/01/09(土) 21:24:33.16 ID:lvRTpcj7.net] 禿の方針だからね スコープに従わない反逆者の排除は
23 名前:デフォルトの名無しさん mailto:sage [2021/01/09(土) 21:37:52.40 ID:Te5slSqE.net] (でも楽しいよね (コンパイル直前のコードが数個のプリミティブにまで還元されちまう楽しい言語もあるしな))
24 名前:デフォルトの名無しさん mailto:sage [2021/01/09(土) 22:11:02.76 ID:w9vYk25X.net] プリプロセッサはC言語の目的(OSを様々なプラットフォームに移植可能な共通ソースコードとして書く)ための 必要欠く書くべからざるしくみとして導入され、できた時点で仕様としてはほぼ過不足なかった という印象 そういう目的のブツなので、キーワードの再定義には全く不向き
25 名前:デフォルトの名無しさん mailto:sage [2021/01/10(日) 07:00:15.18 ID:NGSbpihh.net] プリプロセスおもしろいやん 俺プリプロセス大好き
26 名前:デフォルトの名無しさん [2021/01/10(日) 07:04:45.26 ID:pzwk9NYM.net] 最近は#includeと#defineしか使ってない。
27 名前:デフォルトの名無しさん [2021/01/10(日) 08:03:37.57 ID:pzwk9NYM.net] #defineじゃなくて#pragma onceだった。
28 名前:デフォルトの名無しさん mailto:sage [2021/01/10(日) 10:29:09.95 ID:eq9L0D9i.net] どうやったらその2つを取り違えできるんだww ほんとにつかってる??
29 名前:デフォルトの名無しさん mailto:sage [2021/01/10(日) 10:29:46.47 ID:Cbi+hphF.net] #pragma onceとか#inlude_nextとか標準に入れてほしくはある
30 名前:デフォルトの名無しさん mailto:sage [2021/01/10(日) 10:45:39.55 ID:J1w4FPK7.net] #pragma onceはもう標準のつもりで使ってるわ
31 名前:デフォルトの名無しさん mailto:sage [2021/01/10(日) 11:35:58.46 ID:MuZPu68S.net] >>25 そういう時期もあったな…(遠い目)
32 名前:デフォルトの名無しさん [2021/01/10(日) 11:49:17.12 ID:WbJbdET/.net] #pragma便利よね ライブラリのリンク指定とかも
33 名前:はちみつ餃子 mailto:sage [2021/01/10(日) 11:50:54.98 ID:smlN1G6e.net] >>8 そう、 iostream は「仕方ない」と思うんだよな。 C++11 で variadic template が導入されるまでは 可変長引数を安全な型システムの中で扱えなかった。 仕方がないから演算子でなんとかそれっぽくしただけ。 演算子の中で比較的それっぽいのが << や >> だっただけ。 >>9 そういう観点から見ると、パスや日付の区切りに / を使うのは 演算子にしなければならない仕方なさは感じられない。 演算子にするなら / は比較的自然な選択ではあると思うけど。
34 名前:デフォルトの名無しさん mailto:sage [2021/01/10(日) 11:53:18.07 ID:5+d8OMjE.net] シフト演算なんてほとんど使わんしなあ
35 名前:デフォルトの名無しさん mailto:sage [2021/01/10(日) 11:57:06.83 ID:uVXyGOJo.net] ファイルパスってチェーンしたいものの筆頭格だから演算子にするのは妥当だと思うけど
36 名前:デフォルトの名無しさん [2021/01/10(日) 12:20:31.40 ID:pzwk9NYM.net] >>28 使ってるわい。
37 名前:デフォルトの名無しさん [2021/01/10(日) 12:20:58.71 ID:pzwk9NYM.net] とはいえレスくれてありがとうw
38 名前:デフォルトの名無しさん mailto:sage [2021/01/10(日) 12:38:01.52 ID:stlWAB5c.net] >>35 std::path だと operator/= だな。 優先順位とか戻り値の型とか理由はあるんだろうが、やはり無理してる感は拭えない。
39 名前:デフォルトの名無しさん [2021/01/10(日) 23:28:34.84 ID:9cXVj8qL.net] mutexって同時だとどうなるの?
40 名前:デフォルトの名無しさん [2021/01/10(日) 23:32:27.11 ID:9cXVj8qL.net] 信用して使うしかないけど…本当に同時で来たら…どうなるのかなぁ…と思って…。
41 名前:デフォルトの名無しさん mailto:sage [2021/01/10(日) 23:43:03.84 ID:1knBg1rC.net] 同時に入ろうとしたら同時に入るのではない別の世界線に分岐するから 結局同時にならない
42 名前:デフォルトの名無しさん mailto:sage [2021/01/11(月) 00:43:54.84 ID:KM6/Ii6v.net] posix平行宇宙論
43 名前:デフォルトの名無しさん [2021/01/11(月) 00:44:15.09 ID:AtO8PUuj.net] それだと…CPUの負荷や調子によって…同時になるって…事だよ…。
44 名前:デフォルトの名無しさん [2021/01/11(月) 00:45:46.62 ID:AtO8PUuj.net] mutex…危ういな…どうしよう…。運に任せて…諦めるか…。
45 名前:デフォルトの名無しさん [2021/01/11(月) 00:54:29.81 ID:AtO8PUuj.net] 運任せは辛い…。
46 名前:デフォルトの名無しさん [2021/01/11(月) 01:30:50.91 ID:AtO8PUuj.net] https://stackoverflow.com/questions/7373202/what-happens-if-two-theads-lock-a-mutex-concurrently 大丈夫だと言っているが…ほんまかいな…と思います…迷信はつきもの。
47 名前:デフォルトの名無しさん mailto:sage [2021/01/11(月) 01:37:51.07 ID:KM6/Ii6v.net] テストプログラム作ってさっさと検証しろ無能
48 名前:デフォルトの名無しさん mailto:sage [2021/01/11(月) 01:59:20.31 ID:3nmpeNiQ.net] >>46 信用できないならソースやアセンブリ読めよ。ここで名無しに答えてもらっても、信用できないんだろ?
49 名前:デフォルトの名無しさん [2021/01/11(月) 03:08:34.69 ID:KSKcxhht.net] MutexはOSに依存するので絶対に大丈夫ということはないですが、数々のトラブルを引き起こし最も懸念されたLinuxが安定してきてるので、現在では実用上問題がないレベルにあると思います。
50 名前:デフォルトの名無しさん mailto:sage [2021/01/11(月) 03:36:14.65 ID:dLrb5ZQk.net] マルチCPUでバスリクエストが同時に出た場合の制御なんて明確に定義されてんだろうが OS依存だハード依存だと逃げているから見えない不安に怯えることになるんだよ
51 名前:デフォルトの名無しさん [2021/01/11(月) 06:01:13.69 ID:vFi9Z+AQ.net] LinuxのMutexって使いにくいよね 俺はWindowsから入ったからMutexって名前付きが当たり前だと思ってたんだけどLinuxのMutexには名前がない どうやって複数のプロセス間で同じMutexを使うんだよ・・・って悩んだ 共有メモリなんかでMutexのアドレスを受け渡しするらしいんだけどさ 面倒くさくなってLinux版の同期制御はファイルロックにしちゃった。。
52 名前:デフォルトの名無しさん [2021/01/11(月) 06:47:08.93 ID:KSKcxhht.net] LinuxのファイルロックはNFSで(※私たちにはバグのように見える)仕様通りの動作をするので気を付けたほうが良いですよ。 ユーザーが指定したファイルやディレクトリを不用意に使用すると再現性の無いバグに悩まされます。
53 名前:デフォルトの名無しさん [2021/01/11(月) 06:56:23.61 ID:vFi9Z+AQ.net] >>52 アドバイスありがとう Linuxで共有メモリの使い方もよく分からなくて 共有メモリも書いてる途中で読み取りされたら困るから 「書いたよー」「読み終わったよー」ってプロセス間同期したいんだけどMutex受け渡しの前に同期処理って・・・ それで共有メモリの読み書きをファイルロックで同期してMutexを渡すかなーって考えてるうちに もうファイルロックだけでいいんじゃないかってなってしまった 一般的にはどうやってやるのがよかったんだろ?
54 名前:デフォルトの名無しさん [2021/01/11(月) 07:35:12.79 ID:KSKcxhht.net] >>53 結局、「NFSではバグります」と注意したうえでファイルロックを使うことが一般的に行われてるみたいですよ。 逆に言うと、NFSだけ気を付ければ、問題が起きないみたいです。
55 名前:デフォルトの名無しさん mailto:sage [2021/01/11(月) 08:06:23.60 ID:RSMcM3e3.net] ちょっとググっただけだけどそんなに難しいかなぁ? https://www.geekpage.jp/programming/linux-network/book/07/7-41.php
56 名前:デフォルトの名無しさん [2021/01/11(月) 08:06:43.86 ID:vFi9Z+AQ.net] >>54 ありがとう ちょと安心した
57 名前:デフォルトの名無しさん [2021/01/11(月) 08:16:58.50 ID:vFi9Z+AQ.net] >>55 コード見てみましたけどMutexの作成と共有メモリの書き込みが終わってからforkしてますね forkした親と子ならそれでもいいんでしょうけど 実際は親子ではないプロセス間でMutex使いたくなったりするじゃないですか Mutexが作成される前や共有メモリへの書き込み完了前にスレーブがMutexを要求しに来ると困ります
58 名前:デフォルトの名無しさん mailto:sage [2021/01/11(月) 08:38:54.12 ID:WYfXTDe9.net] >>51 名前付きも普通にある sem_open 名前はセマフォだが当然mutexとして使える 目的がメッセージのやり取りならmkfifoも使える
59 名前:デフォルトの名無しさん mailto:sage [2021/01/11(月) 08:48:31.88 ID:3OtB0f6U.net] mutexじゃなくて名前付きセマフォなら普通にプロセス間で使えなかったっけ?
60 名前:デフォルトの名無しさん mailto:sage [2021/01/11(月) 09:14:02.58 ID:RSMcM3e3.net] >>57 応用力ないの? >>58-59 みたいにセマフォ使うこともできるし、名前付き共有メモリー + Mutexでもいいだろ
61 名前:デフォルトの名無しさん [2021/01/11(月) 09:22:15.64 ID:KSKcxhht.net] >>60 Linuxではファイルロックで良いよ。
62 名前:デフォルトの名無しさん [2021/01/11(月) 09:28:25.14 ID:vFi9Z+AQ.net] セマフォのほうには名前付きあったんですね見落としてました ありがとう!
63 名前:デフォルトの名無しさん [2021/01/11(月) 09:39:24.93 ID:vFi9Z+AQ.net] あと別のところでソケットを排他リソースで使うというアイデアを教えてもらったことあります 同じポート番号をバインドできるのは1つだけだからこれを排他に使うという案
64 名前:デフォルトの名無しさん [2021/01/11(月) 09:52:46.06 ID:KSKcxhht.net] 3年ぶりの建設的なスレだな。
65 名前:デフォルトの名無しさん mailto:sage [2021/01/11(月) 10:09:50.89 ID:RSMcM3e3.net] >>61 ファイルロックはロックしたままプロセス死ぬとリブートしても解消できないのがね
66 名前:デフォルトの名無しさん mailto:sage [2021/01/11(月) 10:39:47.37 ID:sBoV/AFh.net] >>51 pthread周りはなんであんな仕様なのか謎 CPUのアーキテクチャーを深く知れば合理性を得心できるのかどうか、
67 名前:デフォルトの名無しさん [2021/01/11(月) 11:25:14.07 ID:vFi9Z+AQ.net] >>65 それはファイルロック(flock関数)ではなく、単純にファイルの存在チェックをしているだけじゃないですか? flockを使ったファイルロックならプロセス異常終了時にOSによってロックが解放されます
68 名前:デフォルトの名無しさん [2021/01/11(月) 12:46:20.78 ID:vpEQZDgx.net] ミックスジュースよりセックスジュースが好きですね
69 名前:デフォルトの名無しさん mailto:sage [2021/01/11(月) 14:25:33.73 ID:EL34sMb+.net] 唐突に何いいだすねん君は! (‘д‘⊂彡☆))Д´)パーン <ミックスジュースよりセックスジュースが好きですね
70 名前:デフォルトの名無しさん mailto:sage [2021/01/11(月) 14:41:16.25 ID:dLrb5ZQk.net] ラブジュースだろ
71 名前:デフォルトの名無しさん [2021/01/11(月) 16:14:45.22 ID:AtO8PUuj.net] 39です…。 mutexの信頼性をずーと疑ってたら…POSIXスレッド…pthread_mutex_lockに行き着きました… ブロックもするそうです…ソース見てたら…カーネルの様です…pthread_mutex_lock_fullであれば…atomic_compare_and_exchange_val_acq…などもあります…テストアンドセットです… アトミック操作です…しかし…普通にmutexを実装してpthread_mutex_lock_fullが呼ばれるかは… 分かりません…どんなmutexライブラリも最終的に…このカーネルを呼んでるだけだと思います… 呼ばれてるのは…fullではなく…弱い方のpthread_mutex_lockだと仮定しても…カーネルを疑うなんて… 本当に…ナンセンスな話なので…一応…信用して使うことにします…。
72 名前:デフォルトの名無しさん [2021/01/11(月) 16:55:02.21 ID:AtO8PUuj.net] 39です…。 結局…fullでなくても…atomic_exchange_acqが呼ばれているようです…アトミック操作です…。 なので…みなさん…安心して使いましょう…。
73 名前:デフォルトの名無しさん [2021/01/11(月) 16:56:14.48 ID:KSKcxhht.net] >>72 そこでやめずに、atomic_exchange_acqの中まで追いかけてみませんか?
74 名前:デフォルトの名無しさん [2021/01/11(月) 16:56:26.10 ID:AtO8PUuj.net] https://blog.sakasin.net/pthread-mutex-with-glibc ソースです…。
75 名前:デフォルトの名無しさん mailto:sage [2021/01/11(月) 21:32:01.48 ID:KM6/Ii6v.net] Debian woody の頃まで posix thread は使い物にならなかったが Debian etch からようやく使い物になった印象だな 当時から利用している身にしては
76 名前:デフォルトの名無しさん [2021/01/12(火) 05:50:41.37 ID:pJAexhLb.net] わりと最近ですね。
77 名前:デフォルトの名無しさん [2021/01/12(火) 07:34:00.56 ID:V95G+u6D.net] woodyって20年くらい前だっけ 最初はJavaVMもグリーンスレッドというVM内の仮想スレッド実装だったんだよね あれもOSネイティブのスレッドが信用されてなかったからなのかな もちろん、現在のJavaVMはOSのネイティブスレッド使う実装になってるけどね
78 名前:デフォルトの名無しさん [2021/01/12(火) 07:44:47.10 ID:pJAexhLb.net] Javaといえばブラック何とかプロジェクトがSUNに文句言ってなかったっけ?
79 名前:デフォルトの名無しさん [2021/01/12(火) 07:45:53.88 ID:pJAexhLb.net] Etchが2007年と書いてあるな。
80 名前:デフォルトの名無しさん mailto:sage [2021/01/12(火) 09:08:57.41 ID:e5lAHXYT.net] 設計思想的なことについて質問があります。 クラスの使い方がよく分かりません。 僕が今何かを作ろうと思ったら、関数の集まりが引数や返り値のやり取りを通じて協調するような設計をしてしまいます。 この引数や返り値が多く複雑になったりしてきたらクラスを用いた設計を考える、という理解は正しいでしょうか?
81 名前:デフォルトの名無しさん mailto:sage [2021/01/12(火) 09:22:47.73 ID:XkW3hQXX.net] >>80 正しいかどうかは知らないし気にしないでいいと思うけど、 そういう場合はただのデータの集まりとして構造体(これもクラスの一種だけど)を使うだけでも簡単になるだろうね。
82 名前:デフォルトの名無しさん mailto:sage [2021/01/12(火) 13:35:30.39 ID:lxco4c0J.net] 個人的には、一度無理にでも概念(ウインドウとか表示とか作ってるソフトの主要な概念)をクラス名にして作ってみるといいとおも やってるうちに慣れてくる
83 名前:デフォルトの名無しさん [2021/01/12(火) 14:01:10.35 ID:V95G+u6D.net] そうだね なにかを題材にしてオブジェクト指向やってみるのがいいと思う でもウインドウはどうかなー そもそもUIツールキットをある程度知らないといけないし GUIってオブジェクト指向らしからぬ部分も多いので もっとビジネスロジック中心の題材がいいと思うよ たとえば掲示板システムとか 板には複数のスレがあって、各スレの中には複数のレスが並んでて、スレの書き込むメソッドでレスが1つ増えてーみたいな
84 名前:デフォルトの名無しさん [2021/01/12(火) 15:56:33.61 ID:LUlB/OIG.net] >>4 >>11 . を再定義したいと思った
85 名前:デフォルトの名無しさん mailto:sage [2021/01/12(火) 17:32:55.18 ID:+0XoTmdG.net] >>82 初歩的な質問なのですが、クラスってモノじゃなくて概念でも良いのでしょうか つまり、歩く人のプログラムを作るとき、人というクラスが歩くというメソッドを持っていても良いし、歩くというクラスが一歩進むというメソッドを持っていても良いのでしょうか 言語の仕様上はもちろんどちらでも良いと思いますが、どちらの設計の方が筋が良いということはないと思って良いですか?
86 名前:デフォルトの名無しさん mailto:sage [2021/01/12(火) 17:34:51.31 ID:fQCYjk84.net] ナントカ系の関数群みたいに相互に関連し合っているものを 暗黙じゃなく明確化するのがクラスだよ
87 名前:デフォルトの名無しさん [2021/01/12(火) 17:38:10.34 ID:V95G+u6D.net] >>85 「歩く」をクラスにするよりは「歩ける」をインターフェースにしたらどうかな 人間クラスに「歩ける」インターフェースを実装
88 名前:キることで「歩く」メソッドがあることを保証できる 対象ドメインをどのようにモデル化するかは状況や要件次第 [] [ここ壊れてます]
89 名前:デフォルトの名無しさん mailto:sage [2021/01/12(火) 19:05:06.19 ID:mPDSlMxM.net] メタファとして生き物がよく用いられるけどなんだかなあっていつも思う
90 名前:デフォルトの名無しさん mailto:sage [2021/01/12(火) 19:50:41.34 ID:YNFRivpW.net] >>87 「歩け」インターフェースを定義したらインスタンスが歩ける想定であることは自明なのでは… ちなメソッドは一般にオブジェクトの状態変化を引き起こすブツなので 命令型プログラミングの範疇であり命令形で命名すうるが正しい ※ 個人の感想です
91 名前:デフォルトの名無しさん mailto:sage [2021/01/12(火) 19:52:42.41 ID:YNFRivpW.net] しかしインスタンスの生成というプロセスは関数型プログラミングから拝借しており、 命令型と関数型のいいとこ取りしようとして失敗した classベースのオブジェクト志向は
92 名前:デフォルトの名無しさん [2021/01/12(火) 19:58:16.79 ID:GTfU1r+6.net] 何ベースのが成功なの?
93 名前:デフォルトの名無しさん mailto:sage [2021/01/13(水) 09:25:15.89 ID:X1FbeZvQ.net] 場合によっては歩くクラスもありだと思うよ。 ゲームで次の行動を一つずつ記憶させたい場合とか。 commandパターン、mementoパターンでググって
94 名前:デフォルトの名無しさん [2021/01/13(水) 09:45:27.73 ID:D0cZCa+j.net] 歩くということは、位置が変化する。 現在位置は人オブジェクトのプロパティなのか? それでええのか?
95 名前:デフォルトの名無しさん mailto:sage [2021/01/13(水) 11:14:57.57 ID:XODVGtfI.net] >>93 良くね? >>87 インターフェースって継承される前提のものなんですよね? どのクラスが「歩ける」を継承するんですか?
96 名前:デフォルトの名無しさん mailto:sage [2021/01/13(水) 12:34:30.18 ID:QVnLWQ3q.net] >>85 数値化できるものなら何でもオーケーだ 歩行を数値化するにはN個の関節を持つM本の脚をパラメータとし時間経過ごとの接地点と関節の位置をジェネレータみたいに連続的に返すような設計が考えられる
97 名前:デフォルトの名無しさん [2021/01/13(水) 13:12:01.01 ID:D0cZCa+j.net] >>94 じゃあ将棋の駒オブジェクトはプロパティとして位置を持っているのか?
98 名前:デフォルトの名無しさん [2021/01/13(水) 14:09:32.74 ID:D0cZCa+j.net] 俺の考えるOOシステムでは、駒オブジェクトは盤面オブジェクトやルールブックオブジェクトへの参照を持っいる。 駒オブジェクトへ前へ3移動とメッセージを送ると、駒オブジェクトはルールブックオブジェクトと盤面オブジェクトを用いて、移動可能であれば盤面オブジェクトへ自身を移動するようメッセージングする。
99 名前:デフォルトの名無しさん mailto:sage [2021/01/13(水) 15:31:14.00 ID:Dg6tKq+M.net] intを継承してmyintクラスを作ることは可能ですか?
100 名前:デフォルトの名無しさん mailto:sage [2021/01/13(水) 15:38:23.35 ID:CyYDkVRJ.net] システム次第でしょ。 もしも将棋の駒が自律歩行多脚戦車だったら、GPSシステムがすべての位置情報を管理してるなんておかしいし。