※前スレ
C++相談室 part153
https://mevius.5ch.net/test/read.cgi/tech/1602339500/
テンプレここまで
探検
C++相談室 part154
■ このスレッドは過去ログ倉庫に格納されています
2021/01/08(金) 17:54:00.55ID:0DW9z0rL
2デフォルトの名無しさん
2021/01/08(金) 17:56:28.28ID:GG1sOSQC おつかれー
2021/01/08(金) 19:34:40.54ID:hBRzO/B9
STLつかうと一気に実行ファイルサイズが10倍に?!
環境によるだろ。
俺はBorland-C++5.6.2に -D_RTLDLL オプションを指定して、極力
ランタイムを使用するようにして使っているが、例えばstd::vectorを
使っても使わない時と比べ10Kほどしか増えない
すげえ。ダイナミックリンクしといてファイルサイズが増えないとかいってるよ。この人。
C1010: プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました。
とかいうエラーが出るんだけどこれってどうすればいいの?
#include <stdafx.h>
後死ね。
言葉が悪いな。それで教えているつもりか。
まぁヒントぐらいにはなったな。
うむごくろう。
環境によるだろ。
俺はBorland-C++5.6.2に -D_RTLDLL オプションを指定して、極力
ランタイムを使用するようにして使っているが、例えばstd::vectorを
使っても使わない時と比べ10Kほどしか増えない
すげえ。ダイナミックリンクしといてファイルサイズが増えないとかいってるよ。この人。
C1010: プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました。
とかいうエラーが出るんだけどこれってどうすればいいの?
#include <stdafx.h>
後死ね。
言葉が悪いな。それで教えているつもりか。
まぁヒントぐらいにはなったな。
うむごくろう。
2021/01/08(金) 19:38:13.11ID:8XBZO/70
operator->*を好き勝手にオーバーロードするのは
C++厨二病なら誰しもが通る道だと思ってる
C++厨二病なら誰しもが通る道だと思ってる
2021/01/08(金) 20:05:42.45ID:gKD5AY0L
厨二病以下だね沼二病か幼長病レベル
2021/01/08(金) 20:33:39.47ID:eZ2LT3hD
>>3
お前が死ね
お前が死ね
7デフォルトの名無しさん
2021/01/08(金) 20:55:30.03ID:lmjqKHzd だって演算子オーバーロード楽しいし!
それSpirit作者のジョエルさんにも言えるの?
それSpirit作者のジョエルさんにも言えるの?
2021/01/08(金) 21:03:27.15ID:NkKDsd1u
% を三次元ベクトルのクロス積にするのはかつて自分も思いついたけど、勧められないって立場の人も居て
演算子オーバーロードが自然かそうでないかってのは人に拠るなと思った
自分の価値観で言えばiostreamの >> とかってあんまり自然じゃないが
他に何がいいかって言われてもないので仕方ない
演算子オーバーロードが自然かそうでないかってのは人に拠るなと思った
自分の価値観で言えばiostreamの >> とかってあんまり自然じゃないが
他に何がいいかって言われてもないので仕方ない
2021/01/08(金) 21:08:29.47ID:gKD5AY0L
<filesystem>のディレクトリ区切りがoperator/なのとかオモロイやん
10デフォルトの名無しさん
2021/01/08(金) 21:17:01.55ID:U7HVBqAl 絵文字プログラミングが来る
なので独自オペレータは出来た方がいい
なので独自オペレータは出来た方がいい
2021/01/08(金) 21:44:49.24ID:gxkYqo9D
12デフォルトの名無しさん
2021/01/09(土) 00:35:22.39ID:8yDnsj0x キーワードも再定義可能にしてホスイ
2021/01/09(土) 01:15:10.33ID:CT/R4i5r
#defineでイケるやろ
14デフォルトの名無しさん
2021/01/09(土) 01:39:13.52ID:InkVVK6p #define private public
ってテクニックのことか。
ってテクニックのことか。
2021/01/09(土) 04:17:16.54ID:kjQQkk+g
2021/01/09(土) 09:21:23.56ID:c2CH7ey/
キーワードをdefineするのは規格上は未定義動作
でもだいたい通っちゃうな
でもだいたい通っちゃうな
2021/01/09(土) 09:27:02.27ID:lvRTpcj7
その条文どこだっけ
2021/01/09(土) 10:07:37.60ID:c2CH7ey/
この辺かな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すんな)
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すんな)
2021/01/09(土) 11:17:12.79ID:lvRTpcj7
thx
20デフォルトの名無しさん
2021/01/09(土) 20:30:21.03ID:w9vYk25X >>13
何言ってんだおめー;;;
何言ってんだおめー;;;
2021/01/09(土) 21:18:55.59ID:jpx8Mcv4
C++はプリプロセッサが発展する方向にいかなくて本当に良かった
プリプロセッサを吸収して凄いことになってる気はするが
プリプロセッサを吸収して凄いことになってる気はするが
2021/01/09(土) 21:24:33.16ID:lvRTpcj7
禿の方針だからね
スコープに従わない反逆者の排除は
スコープに従わない反逆者の排除は
2021/01/09(土) 21:37:52.40ID:Te5slSqE
(でも楽しいよね
(コンパイル直前のコードが数個のプリミティブにまで還元されちまう楽しい言語もあるしな))
(コンパイル直前のコードが数個のプリミティブにまで還元されちまう楽しい言語もあるしな))
2021/01/09(土) 22:11:02.76ID:w9vYk25X
プリプロセッサはC言語の目的(OSを様々なプラットフォームに移植可能な共通ソースコードとして書く)ための
必要欠く書くべからざるしくみとして導入され、できた時点で仕様としてはほぼ過不足なかった
という印象
そういう目的のブツなので、キーワードの再定義には全く不向き
必要欠く書くべからざるしくみとして導入され、できた時点で仕様としてはほぼ過不足なかった
という印象
そういう目的のブツなので、キーワードの再定義には全く不向き
2021/01/10(日) 07:00:15.18ID:NGSbpihh
プリプロセスおもしろいやん
俺プリプロセス大好き
俺プリプロセス大好き
26デフォルトの名無しさん
2021/01/10(日) 07:04:45.26ID:pzwk9NYM 最近は#includeと#defineしか使ってない。
27デフォルトの名無しさん
2021/01/10(日) 08:03:37.57ID:pzwk9NYM #defineじゃなくて#pragma onceだった。
2021/01/10(日) 10:29:09.95ID:eq9L0D9i
どうやったらその2つを取り違えできるんだww
ほんとにつかってる??
ほんとにつかってる??
2021/01/10(日) 10:29:46.47ID:Cbi+hphF
#pragma onceとか#inlude_nextとか標準に入れてほしくはある
2021/01/10(日) 10:45:39.55ID:J1w4FPK7
#pragma onceはもう標準のつもりで使ってるわ
2021/01/10(日) 11:35:58.46ID:MuZPu68S
>>25
そういう時期もあったな…(遠い目)
そういう時期もあったな…(遠い目)
32デフォルトの名無しさん
2021/01/10(日) 11:49:17.12ID:WbJbdET/ #pragma便利よね ライブラリのリンク指定とかも
33はちみつ餃子 ◆8X2XSCHEME
2021/01/10(日) 11:50:54.98ID:smlN1G6e2021/01/10(日) 11:53:18.07ID:5+d8OMjE
シフト演算なんてほとんど使わんしなあ
2021/01/10(日) 11:57:06.83ID:uVXyGOJo
ファイルパスってチェーンしたいものの筆頭格だから演算子にするのは妥当だと思うけど
36デフォルトの名無しさん
2021/01/10(日) 12:20:31.40ID:pzwk9NYM >>28
使ってるわい。
使ってるわい。
37デフォルトの名無しさん
2021/01/10(日) 12:20:58.71ID:pzwk9NYM とはいえレスくれてありがとうw
2021/01/10(日) 12:38:01.52ID:stlWAB5c
39デフォルトの名無しさん
2021/01/10(日) 23:28:34.84ID:9cXVj8qL mutexって同時だとどうなるの?
40デフォルトの名無しさん
2021/01/10(日) 23:32:27.11ID:9cXVj8qL 信用して使うしかないけど…本当に同時で来たら…どうなるのかなぁ…と思って…。
2021/01/10(日) 23:43:03.84ID:1knBg1rC
同時に入ろうとしたら同時に入るのではない別の世界線に分岐するから
結局同時にならない
結局同時にならない
2021/01/11(月) 00:43:54.84ID:KM6/Ii6v
posix平行宇宙論
43デフォルトの名無しさん
2021/01/11(月) 00:44:15.09ID:AtO8PUuj それだと…CPUの負荷や調子によって…同時になるって…事だよ…。
44デフォルトの名無しさん
2021/01/11(月) 00:45:46.62ID:AtO8PUuj mutex…危ういな…どうしよう…。運に任せて…諦めるか…。
45デフォルトの名無しさん
2021/01/11(月) 00:54:29.81ID:AtO8PUuj 運任せは辛い…。
46デフォルトの名無しさん
2021/01/11(月) 01:30:50.91ID:AtO8PUuj https://stackoverflow.com/questions/7373202/what-happens-if-two-theads-lock-a-mutex-concurrently
大丈夫だと言っているが…ほんまかいな…と思います…迷信はつきもの。
大丈夫だと言っているが…ほんまかいな…と思います…迷信はつきもの。
2021/01/11(月) 01:37:51.07ID:KM6/Ii6v
テストプログラム作ってさっさと検証しろ無能
2021/01/11(月) 01:59:20.31ID:3nmpeNiQ
>>46
信用できないならソースやアセンブリ読めよ。ここで名無しに答えてもらっても、信用できないんだろ?
信用できないならソースやアセンブリ読めよ。ここで名無しに答えてもらっても、信用できないんだろ?
49デフォルトの名無しさん
2021/01/11(月) 03:08:34.69ID:KSKcxhht MutexはOSに依存するので絶対に大丈夫ということはないですが、数々のトラブルを引き起こし最も懸念されたLinuxが安定してきてるので、現在では実用上問題がないレベルにあると思います。
2021/01/11(月) 03:36:14.65ID:dLrb5ZQk
マルチCPUでバスリクエストが同時に出た場合の制御なんて明確に定義されてんだろうが
OS依存だハード依存だと逃げているから見えない不安に怯えることになるんだよ
OS依存だハード依存だと逃げているから見えない不安に怯えることになるんだよ
51デフォルトの名無しさん
2021/01/11(月) 06:01:13.69ID:vFi9Z+AQ LinuxのMutexって使いにくいよね
俺はWindowsから入ったからMutexって名前付きが当たり前だと思ってたんだけどLinuxのMutexには名前がない
どうやって複数のプロセス間で同じMutexを使うんだよ・・・って悩んだ
共有メモリなんかでMutexのアドレスを受け渡しするらしいんだけどさ
面倒くさくなってLinux版の同期制御はファイルロックにしちゃった。。
俺はWindowsから入ったからMutexって名前付きが当たり前だと思ってたんだけどLinuxのMutexには名前がない
どうやって複数のプロセス間で同じMutexを使うんだよ・・・って悩んだ
共有メモリなんかでMutexのアドレスを受け渡しするらしいんだけどさ
面倒くさくなってLinux版の同期制御はファイルロックにしちゃった。。
52デフォルトの名無しさん
2021/01/11(月) 06:47:08.93ID:KSKcxhht LinuxのファイルロックはNFSで(※私たちにはバグのように見える)仕様通りの動作をするので気を付けたほうが良いですよ。
ユーザーが指定したファイルやディレクトリを不用意に使用すると再現性の無いバグに悩まされます。
ユーザーが指定したファイルやディレクトリを不用意に使用すると再現性の無いバグに悩まされます。
53デフォルトの名無しさん
2021/01/11(月) 06:56:23.61ID:vFi9Z+AQ >>52
アドバイスありがとう
Linuxで共有メモリの使い方もよく分からなくて
共有メモリも書いてる途中で読み取りされたら困るから
「書いたよー」「読み終わったよー」ってプロセス間同期したいんだけどMutex受け渡しの前に同期処理って・・・
それで共有メモリの読み書きをファイルロックで同期してMutexを渡すかなーって考えてるうちに
もうファイルロックだけでいいんじゃないかってなってしまった
一般的にはどうやってやるのがよかったんだろ?
アドバイスありがとう
Linuxで共有メモリの使い方もよく分からなくて
共有メモリも書いてる途中で読み取りされたら困るから
「書いたよー」「読み終わったよー」ってプロセス間同期したいんだけどMutex受け渡しの前に同期処理って・・・
それで共有メモリの読み書きをファイルロックで同期してMutexを渡すかなーって考えてるうちに
もうファイルロックだけでいいんじゃないかってなってしまった
一般的にはどうやってやるのがよかったんだろ?
54デフォルトの名無しさん
2021/01/11(月) 07:35:12.79ID:KSKcxhht2021/01/11(月) 08:06:23.60ID:RSMcM3e3
ちょっとググっただけだけどそんなに難しいかなぁ?
https://www.geekpage.jp/programming/linux-network/book/07/7-41.php
https://www.geekpage.jp/programming/linux-network/book/07/7-41.php
56デフォルトの名無しさん
2021/01/11(月) 08:06:43.86ID:vFi9Z+AQ >>54
ありがとう ちょと安心した
ありがとう ちょと安心した
57デフォルトの名無しさん
2021/01/11(月) 08:16:58.50ID:vFi9Z+AQ >>55
コード見てみましたけどMutexの作成と共有メモリの書き込みが終わってからforkしてますね
forkした親と子ならそれでもいいんでしょうけど
実際は親子ではないプロセス間でMutex使いたくなったりするじゃないですか
Mutexが作成される前や共有メモリへの書き込み完了前にスレーブがMutexを要求しに来ると困ります
コード見てみましたけどMutexの作成と共有メモリの書き込みが終わってからforkしてますね
forkした親と子ならそれでもいいんでしょうけど
実際は親子ではないプロセス間でMutex使いたくなったりするじゃないですか
Mutexが作成される前や共有メモリへの書き込み完了前にスレーブがMutexを要求しに来ると困ります
2021/01/11(月) 08:38:54.12ID:WYfXTDe9
2021/01/11(月) 08:48:31.88ID:3OtB0f6U
mutexじゃなくて名前付きセマフォなら普通にプロセス間で使えなかったっけ?
2021/01/11(月) 09:14:02.58ID:RSMcM3e3
61デフォルトの名無しさん
2021/01/11(月) 09:22:15.64ID:KSKcxhht >>60
Linuxではファイルロックで良いよ。
Linuxではファイルロックで良いよ。
62デフォルトの名無しさん
2021/01/11(月) 09:28:25.14ID:vFi9Z+AQ セマフォのほうには名前付きあったんですね見落としてました
ありがとう!
ありがとう!
63デフォルトの名無しさん
2021/01/11(月) 09:39:24.93ID:vFi9Z+AQ あと別のところでソケットを排他リソースで使うというアイデアを教えてもらったことあります
同じポート番号をバインドできるのは1つだけだからこれを排他に使うという案
同じポート番号をバインドできるのは1つだけだからこれを排他に使うという案
64デフォルトの名無しさん
2021/01/11(月) 09:52:46.06ID:KSKcxhht 3年ぶりの建設的なスレだな。
2021/01/11(月) 10:09:50.89ID:RSMcM3e3
>>61
ファイルロックはロックしたままプロセス死ぬとリブートしても解消できないのがね
ファイルロックはロックしたままプロセス死ぬとリブートしても解消できないのがね
2021/01/11(月) 10:39:47.37ID:sBoV/AFh
67デフォルトの名無しさん
2021/01/11(月) 11:25:14.07ID:vFi9Z+AQ >>65
それはファイルロック(flock関数)ではなく、単純にファイルの存在チェックをしているだけじゃないですか?
flockを使ったファイルロックならプロセス異常終了時にOSによってロックが解放されます
それはファイルロック(flock関数)ではなく、単純にファイルの存在チェックをしているだけじゃないですか?
flockを使ったファイルロックならプロセス異常終了時にOSによってロックが解放されます
68デフォルトの名無しさん
2021/01/11(月) 12:46:20.78ID:vpEQZDgx ミックスジュースよりセックスジュースが好きですね
2021/01/11(月) 14:25:33.73ID:EL34sMb+
唐突に何いいだすねん君は!
(‘д‘⊂彡☆))Д´)パーン <ミックスジュースよりセックスジュースが好きですね
(‘д‘⊂彡☆))Д´)パーン <ミックスジュースよりセックスジュースが好きですね
2021/01/11(月) 14:41:16.25ID:dLrb5ZQk
ラブジュースだろ
71デフォルトの名無しさん
2021/01/11(月) 16:14:45.22ID:AtO8PUuj 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だと仮定しても…カーネルを疑うなんて…
本当に…ナンセンスな話なので…一応…信用して使うことにします…。
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.21ID:AtO8PUuj 39です…。
結局…fullでなくても…atomic_exchange_acqが呼ばれているようです…アトミック操作です…。
なので…みなさん…安心して使いましょう…。
結局…fullでなくても…atomic_exchange_acqが呼ばれているようです…アトミック操作です…。
なので…みなさん…安心して使いましょう…。
73デフォルトの名無しさん
2021/01/11(月) 16:56:14.48ID:KSKcxhht >>72
そこでやめずに、atomic_exchange_acqの中まで追いかけてみませんか?
そこでやめずに、atomic_exchange_acqの中まで追いかけてみませんか?
74デフォルトの名無しさん
2021/01/11(月) 16:56:26.10ID:AtO8PUuj2021/01/11(月) 21:32:01.48ID:KM6/Ii6v
Debian woody の頃まで posix thread は使い物にならなかったが Debian etch からようやく使い物になった印象だな
当時から利用している身にしては
当時から利用している身にしては
76デフォルトの名無しさん
2021/01/12(火) 05:50:41.37ID:pJAexhLb わりと最近ですね。
77デフォルトの名無しさん
2021/01/12(火) 07:34:00.56ID:V95G+u6D woodyって20年くらい前だっけ
最初はJavaVMもグリーンスレッドというVM内の仮想スレッド実装だったんだよね
あれもOSネイティブのスレッドが信用されてなかったからなのかな
もちろん、現在のJavaVMはOSのネイティブスレッド使う実装になってるけどね
最初はJavaVMもグリーンスレッドというVM内の仮想スレッド実装だったんだよね
あれもOSネイティブのスレッドが信用されてなかったからなのかな
もちろん、現在のJavaVMはOSのネイティブスレッド使う実装になってるけどね
78デフォルトの名無しさん
2021/01/12(火) 07:44:47.10ID:pJAexhLb Javaといえばブラック何とかプロジェクトがSUNに文句言ってなかったっけ?
79デフォルトの名無しさん
2021/01/12(火) 07:45:53.88ID:pJAexhLb Etchが2007年と書いてあるな。
2021/01/12(火) 09:08:57.41ID:e5lAHXYT
設計思想的なことについて質問があります。
クラスの使い方がよく分かりません。
僕が今何かを作ろうと思ったら、関数の集まりが引数や返り値のやり取りを通じて協調するような設計をしてしまいます。
この引数や返り値が多く複雑になったりしてきたらクラスを用いた設計を考える、という理解は正しいでしょうか?
クラスの使い方がよく分かりません。
僕が今何かを作ろうと思ったら、関数の集まりが引数や返り値のやり取りを通じて協調するような設計をしてしまいます。
この引数や返り値が多く複雑になったりしてきたらクラスを用いた設計を考える、という理解は正しいでしょうか?
2021/01/12(火) 09:22:47.73ID:XkW3hQXX
2021/01/12(火) 13:35:30.39ID:lxco4c0J
個人的には、一度無理にでも概念(ウインドウとか表示とか作ってるソフトの主要な概念)をクラス名にして作ってみるといいとおも
やってるうちに慣れてくる
やってるうちに慣れてくる
83デフォルトの名無しさん
2021/01/12(火) 14:01:10.35ID:V95G+u6D そうだね
なにかを題材にしてオブジェクト指向やってみるのがいいと思う
でもウインドウはどうかなー そもそもUIツールキットをある程度知らないといけないし
GUIってオブジェクト指向らしからぬ部分も多いので
もっとビジネスロジック中心の題材がいいと思うよ たとえば掲示板システムとか
板には複数のスレがあって、各スレの中には複数のレスが並んでて、スレの書き込むメソッドでレスが1つ増えてーみたいな
なにかを題材にしてオブジェクト指向やってみるのがいいと思う
でもウインドウはどうかなー そもそもUIツールキットをある程度知らないといけないし
GUIってオブジェクト指向らしからぬ部分も多いので
もっとビジネスロジック中心の題材がいいと思うよ たとえば掲示板システムとか
板には複数のスレがあって、各スレの中には複数のレスが並んでて、スレの書き込むメソッドでレスが1つ増えてーみたいな
2021/01/12(火) 17:32:55.18ID:+0XoTmdG
>>82
初歩的な質問なのですが、クラスってモノじゃなくて概念でも良いのでしょうか
つまり、歩く人のプログラムを作るとき、人というクラスが歩くというメソッドを持っていても良いし、歩くというクラスが一歩進むというメソッドを持っていても良いのでしょうか
言語の仕様上はもちろんどちらでも良いと思いますが、どちらの設計の方が筋が良いということはないと思って良いですか?
初歩的な質問なのですが、クラスってモノじゃなくて概念でも良いのでしょうか
つまり、歩く人のプログラムを作るとき、人というクラスが歩くというメソッドを持っていても良いし、歩くというクラスが一歩進むというメソッドを持っていても良いのでしょうか
言語の仕様上はもちろんどちらでも良いと思いますが、どちらの設計の方が筋が良いということはないと思って良いですか?
2021/01/12(火) 17:34:51.31ID:fQCYjk84
ナントカ系の関数群みたいに相互に関連し合っているものを
暗黙じゃなく明確化するのがクラスだよ
暗黙じゃなく明確化するのがクラスだよ
87デフォルトの名無しさん
2021/01/12(火) 17:38:10.34ID:V95G+u6D >>85
「歩く」をクラスにするよりは「歩ける」をインターフェースにしたらどうかな
人間クラスに「歩ける」インターフェースを実装することで「歩く」メソッドがあることを保証できる
対象ドメインをどのようにモデル化するかは状況や要件次第
「歩く」をクラスにするよりは「歩ける」をインターフェースにしたらどうかな
人間クラスに「歩ける」インターフェースを実装することで「歩く」メソッドがあることを保証できる
対象ドメインをどのようにモデル化するかは状況や要件次第
2021/01/12(火) 19:05:06.19ID:mPDSlMxM
メタファとして生き物がよく用いられるけどなんだかなあっていつも思う
2021/01/12(火) 19:50:41.34ID:YNFRivpW
>>87
「歩け」インターフェースを定義したらインスタンスが歩ける想定であることは自明なのでは…
ちなメソッドは一般にオブジェクトの状態変化を引き起こすブツなので
命令型プログラミングの範疇であり命令形で命名すうるが正しい
※ 個人の感想です
「歩け」インターフェースを定義したらインスタンスが歩ける想定であることは自明なのでは…
ちなメソッドは一般にオブジェクトの状態変化を引き起こすブツなので
命令型プログラミングの範疇であり命令形で命名すうるが正しい
※ 個人の感想です
2021/01/12(火) 19:52:42.41ID:YNFRivpW
しかしインスタンスの生成というプロセスは関数型プログラミングから拝借しており、
命令型と関数型のいいとこ取りしようとして失敗した
classベースのオブジェクト志向は
命令型と関数型のいいとこ取りしようとして失敗した
classベースのオブジェクト志向は
91デフォルトの名無しさん
2021/01/12(火) 19:58:16.79ID:GTfU1r+6 何ベースのが成功なの?
2021/01/13(水) 09:25:15.89ID:X1FbeZvQ
場合によっては歩くクラスもありだと思うよ。
ゲームで次の行動を一つずつ記憶させたい場合とか。
commandパターン、mementoパターンでググって
ゲームで次の行動を一つずつ記憶させたい場合とか。
commandパターン、mementoパターンでググって
93デフォルトの名無しさん
2021/01/13(水) 09:45:27.73ID:D0cZCa+j 歩くということは、位置が変化する。
現在位置は人オブジェクトのプロパティなのか?
それでええのか?
現在位置は人オブジェクトのプロパティなのか?
それでええのか?
2021/01/13(水) 11:14:57.57ID:XODVGtfI
2021/01/13(水) 12:34:30.18ID:QVnLWQ3q
96デフォルトの名無しさん
2021/01/13(水) 13:12:01.01ID:D0cZCa+j >>94
じゃあ将棋の駒オブジェクトはプロパティとして位置を持っているのか?
じゃあ将棋の駒オブジェクトはプロパティとして位置を持っているのか?
97デフォルトの名無しさん
2021/01/13(水) 14:09:32.74ID:D0cZCa+j 俺の考えるOOシステムでは、駒オブジェクトは盤面オブジェクトやルールブックオブジェクトへの参照を持っいる。
駒オブジェクトへ前へ3移動とメッセージを送ると、駒オブジェクトはルールブックオブジェクトと盤面オブジェクトを用いて、移動可能であれば盤面オブジェクトへ自身を移動するようメッセージングする。
駒オブジェクトへ前へ3移動とメッセージを送ると、駒オブジェクトはルールブックオブジェクトと盤面オブジェクトを用いて、移動可能であれば盤面オブジェクトへ自身を移動するようメッセージングする。
2021/01/13(水) 15:31:14.00ID:Dg6tKq+M
intを継承してmyintクラスを作ることは可能ですか?
2021/01/13(水) 15:38:23.35ID:CyYDkVRJ
システム次第でしょ。
もしも将棋の駒が自律歩行多脚戦車だったら、GPSシステムがすべての位置情報を管理してるなんておかしいし。
もしも将棋の駒が自律歩行多脚戦車だったら、GPSシステムがすべての位置情報を管理してるなんておかしいし。
100デフォルトの名無しさん
2021/01/13(水) 15:38:43.61ID:D0cZCa+j enum class なら可能。
101デフォルトの名無しさん
2021/01/13(水) 20:01:32.91ID:D0cZCa+j C++はテンプレートがあるので設計の詳細を先送りできる。
その特徴を生かせるように、プッシュ型を流行らせませんか?
プッシュ型は、前提が少ないので、利用者が自由に組み合わせることが出来ます。
これは、インターフェースによって事前に詳細を設計してしまう方式と真逆かもしれないが、組み合わせによって機能を作ることが出来まっする。
その特徴を生かせるように、プッシュ型を流行らせませんか?
プッシュ型は、前提が少ないので、利用者が自由に組み合わせることが出来ます。
これは、インターフェースによって事前に詳細を設計してしまう方式と真逆かもしれないが、組み合わせによって機能を作ることが出来まっする。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- ネット殺到「高市総理の責任」「完全に高市リスク」「高市さん負けるな」中国が水産物輸入停止→流石に総理批判の声も「どう責任取る?」 [樽悶★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★10 [ぐれ★]
- 【為替】対ドルで157円台、対ユーロ181円台に下落 財政悪化を警戒 [蚤の市★]
- トランプ氏「台湾侵攻すれば北京爆撃」“過激予告発言”報道がXで再燃「高市氏の1億倍やばい」 [七波羅探題★]
- フィフィ、中国の“日本産水産物輸入停止”措置に私見「中国依存しないとやっていけない企業は考えを改めて」 [Anonymous★]
- 「母の部屋に安倍氏が表紙の機関誌が」「(安倍氏が被害者なのは)不思議に思いませんでした」山上被告の妹が証言 ★2 [おっさん友の会★]
- 【悲報】倉田真由美「なんで高市は子供がいる家庭に2万円給付するの?子供がいる家庭ばかり優遇するのおかしくね?」 [802034645]
- 中国報道、高市首相を「毒苗」と中傷😡 [399259198]
- 【悲報】高市早苗「“なり得る”って言っただけでなんでそんなに叩くの?私女なんですけど!」 [616817505]
- 【高市悲報】🇨🇳中国「日本への報復措置? 他にいくらでも方法はある。 まだまだやめないよ」 😨😱 [485983549]
- 松田聖子👈今思うとこいつがデビューした時の衝撃って凄かったよな [977261419]
- 【高市点字】 ローカル鉄道会社「ホームに点字ブロックかぁ…。 150m施工すると1500万円!?😱 そんな金ないよぉ……」 [485983549]
