- C++相談室 part133
375 :デフォルトの名無しさん (ワッチョイ 9fbd-aiou)[sage]:2017/12/09(土) 11:10:57.47 ID:VQtjhM8H0 - >>367
>>366のgetter/setterの中身はあくまでサンプルなのでは… >>373 いちいちメソッド呼び出しの度に状態を引数渡しするほうが内部状態の露出として醜悪かもしれん… つかデータメンバの書き換えはデータメンバの書き換えだからNGというものではなくて、 内部状態の整合性が保たれれば何だって良いんじゃ… データメンバ直書き換えでなくsetterなら整合性をチェックしたり与えたりするチャンスがある (あるいは排他制御とかやることもある…まあ慎重に考えたらsetterでやるよりロック回数が少ない方法がたいてい見つかるが、
|
- C++相談室 part133
376 :デフォルトの名無しさん (ワッチョイ 9fbd-aiou)[sage]:2017/12/09(土) 11:13:16.09 ID:VQtjhM8H0 - アンカーミスった、
誤: >>373 正: >>372
|
- C++相談室 part133
381 :デフォルトの名無しさん (ワッチョイ 9fbd-aiou)[sage]:2017/12/09(土) 14:29:29.91 ID:VQtjhM8H0 - >>366のgetterの&を見落としていたorz
m_dataへのmutableなポインタを返すのではm_dataのgetterとは言えぬ
|
- C++相談室 part133
393 :デフォルトの名無しさん (ワッチョイ 9fbd-aiou)[sage]:2017/12/09(土) 20:26:30.08 ID:VQtjhM8H0 - setter/getter批判論者は何を批判しているのかいまいちわからん…
class SomeWidget { // GUIのパーツか何か Color m_FgColor; // 前景色 Color m_BgColor; // 背景色 ... }; とゆークラスがあったとして、 void SomeWidget::setFgColor(Color color) { m_FgColor = color; } void SomeWidget::setBgColor(Color color) { m_BgColor = color; } というのはsetterだからダメで、意味的にまとまりのある void SomeWidget::setColor(Color fgColor, Color bgColor) { m_FgColor = color; m_BgColor = color; } とかにしないとダメだとかそーいう主張? スゲーいらんお世話な気が…
|
- C++相談室 part133
404 :デフォルトの名無しさん (ワッチョイ 9fbd-aiou)[sage]:2017/12/09(土) 23:23:36.06 ID:VQtjhM8H0 - >>400
mutableなオブジェクトとして書きたい(ときもある)から
|
- C++相談室 part133
410 :デフォルトの名無しさん (ワッチョイ 9fbd-aiou)[sage]:2017/12/09(土) 23:35:31.46 ID:VQtjhM8H0 - >>409
ウィンドーズホン御用達言語のC++CXにもあるわ;
|
- C++相談室 part133
414 :デフォルトの名無しさん (ワッチョイ 9fbd-aiou)[sage]:2017/12/09(土) 23:48:58.02 ID:VQtjhM8H0 - >>412
ウィンドーズホンでネイティブC++を呼び出すための唯一の手段なので死んではいないハズ… ttps://docs.microsoft.com/ja-jp/windows/uwp/winrt-components/creating-windows-runtime-components-in-cpp
|