C++相談室 part143

■ このスレッドは過去ログ倉庫に格納されています
2019/06/15(土) 13:51:53.57ID:DKQ0QQLH0
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。

前スレ
C++相談室 part142
https://mevius.5ch.net/test/read.cgi/tech/1554124625/

このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.105【環境依存OK】
https://mevius.5ch.net/test/read.cgi/tech/1556142878/

■長いソースを貼るときはここへ。■
 http://codepad.org/
 https://ideone.com/

[C++ FAQ]
https://isocpp.org/wiki/faq/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)

----- テンプレ ここまで -----
VIPQ2_EXTDAT: default:vvv:1000:512:----: EXT was configured
2019/06/15(土) 16:03:43.75ID:yU4M2XeV0
すっぱい葡萄
ttps://ja.wikipedia.org/wiki/%E3%81%99%E3%81%A3%E3%81%B1%E3%81%84%E8%91%A1%E8%90%84
 自分のものにしたくてたまらないにもかかわらず、努力しても到底かなわない対象である場合、
 人はその対象を「価値の無いもの」「自分にふさわしくないもの」と見なそうとし、
 それをあきらめの理由として納得し、心の平安を得ようとするものである。
 フロイトの心理学では、これを防衛機制および合理化の例とする。また、社会心理学においては、認知的不協和の例とされる。
 英語には、この寓話を元に生まれた熟語として "sour grapes" があるが、これは「負け惜しみ」を意味する。
3デフォルトの名無しさん (ワッチョイ)
垢版 |
2019/06/16(日) 12:29:06.82ID:yEr4r4hL0
ttps://qiita.com/hirokidaichi/items/adccebb41f77eaa6132f
>Paul曰く:
>人は、その人のアイデンティティの一部となっている事について、実りある議論はできない。
>これすなわち、自分のホームに近い話題ほど論理よりも感情が優先されてしまうということ。
>Kathy曰く:
>他の人が夢中になるほど、そのプロダクトやブランドへの憎しみは強くなる
>これはつまり、彼らはクールエイドを飲んでしまってるということだ。
2019/06/16(日) 16:55:32.05ID:NJ2skO190
質問です。

https://dotup.org/uploda/dotup.org1873815.zip
ここまで作ってデバッグしようとしたらシェアードポインタが継承扱ってくれない感じになった。
2017ではできていた気がしたけど、なぜですか?
2019/06/16(日) 17:32:43.45ID:/ZY8dphZ0
thinkFirst
ThinkFirst

オーバーライドするときはoverrideつけたら?
2019/06/16(日) 17:36:44.99ID:NJ2skO190
>>5
サンクス。こんなことか・・・。
そういえばそういう習慣持ってないなぁ。余裕があったらやってみる。

コンパイル通ったので再開。

助かりましたありがとう。
2019/06/16(日) 19:27:55.97ID:gDHKfsB60
test
2019/06/17(月) 00:12:48.76ID:oaY4OAXG0
>>1

前スレ>>1000の人は関数型プログラミング的プログラミングを自らに課している人なのであろう
つまり全てのオブジェクトは属性がコンストラクタで設定され、immutable、、、
2019/06/17(月) 00:55:04.38ID:qMa7jD650
getterは読み取り専用のメンバを作りたいときに必要
setterはpimpl化したときに必要
2019/06/17(月) 01:18:11.69ID:a5RA1dZMa
const publicがあればいいのか
2019/06/17(月) 09:36:57.72ID:FBMbqlks0
getterならread only修飾子を導入して
コンパイル時に書きこまれないことを保証すればいい
かんたんだろ
2019/06/17(月) 09:43:06.17ID:NDzOpmZcM
mutable なオブジェクトだとしても、setter を付けるメンバー変数は少ないな。
3つのうち1つぐらいの感じ。
2019/06/17(月) 14:59:51.76ID:otIzoLhyd
セマンティクス上で重要なメンバ関数の区別は、オブジェクトの内部状態を変更するものか(非constメンバ関数)と、変更せずに内容を見るためのものか(constメンバ関数)の違いであって
その具体的な処理内容が特定のprivateデータメンバのgetterかsetterかなんて観点は大して重要じゃないし、そんなものに固執して設計を考えるのは馬鹿馬鹿しいし危険だと思う
2019/06/17(月) 15:13:59.52ID:NDzOpmZcM
>>13
「状態を変更」の方はまあいいけど「内容を見る」という表現は狭すぎないか。
2019/06/17(月) 15:20:09.82ID:otIzoLhyd
そうね引数を加工するとか他のオブジェクトへのプロキシになるとか色々あるね
getterのイメージに引きずられすぎちゃった
2019/06/17(月) 15:54:46.05ID:cgazGIue0
コンテナのset, map, multi_mapはconst_iteratorじゃないと正しくforループを回せないって制限あった気がする。どうだっけ?
2019/06/17(月) 16:13:33.58ID:ikLTlFyV0
ペアのインデックサがわを弄ったら、ソートぶっこまれて順番が狂う感じの奴かい?
2019/06/17(月) 17:06:03.61ID:xa2u5Y3Ua
構造体のメンバ変数をまとめて以下のように文字列でアクセスできるようにしたいのですが、
構造体のポインタを以下のpointerに一括で割り当てる方法はないでしょうか?

Params {
int param1, param2;
} params;

std::map<std::string, void*> pointer;

// 同じ操作
params.param1 = 1;
*static_cast<int*>(pointer["param1"]) = 1;
2019/06/17(月) 17:11:32.29ID:xa2u5Y3Ua
Paramsは複数の型のメンバ変数を持ちますがpointerにtypeidを合わせて持たせることで使用時の問題は解決できます
2019/06/17(月) 17:11:48.82ID:cgazGIue0
>>18
日本語でok
2019/06/17(月) 17:15:04.87ID:xa2u5Y3Ua
以下のように一つずつ割り当てるのではなく、構造体に含まれるメンバの名前とポインタをイテレートして割り当てたいのです
pointer["param1"] = &params.param1;
pointer["param2"] = &params.param2;
2019/06/17(月) 17:26:50.49ID:FBMbqlks0
リフレクションすれば早い
そうでしょう?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況