[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 03/10 14:57 / Filesize : 234 KB / Number-of Response : 1018
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C++相談室 part126



1 名前:デフォルトの名無しさん mailto:sage [2016/08/13(土) 11:24:45.65 ID:NPYsKJkE.net]
次スレを立てる時は本文の1行目に以下を追加して下さい
!extend:on:vvvvv:1000:512

C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレに
お願いします。

前スレ
C++相談室 part125
echo.2ch.net/test/read.cgi/tech/1463761261/

このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.99【環境依存OK】
echo.2ch.net/test/read.cgi/tech/1469177649/

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

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

231 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 06:24:16.40 ID:a4amypBO.net]
速攻指摘されてるじゃん

232 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 06:32:42.06 ID:VK4fyJjM.net]
>>226
>>225の理屈だと、矛盾以外の不足は「完全なコードじゃないから」になってしまうらしいから
本当は開始・描画・終了の全てにチェックがあったのを一部省略してるだけだろう

233 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 07:20:04.01 ID:ERRoyT16.net]
>>197
論文見たら全てが策定中になっちゃうのかよ
おめでてーな

234 名前:デフォルトの名無しさん [2016/08/28(日) 07:40:09.72 ID:hSYh5tBq.net]
>>228
デストラクタでdeleteする前にviewObjに対してなにかしてるって事?
もしそうならもっと糞コードやん。
viewObj自身で片付けろよと。

235 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 07:47:04.27 ID:ERRoyT16.net]
ビューポートがビューを破棄するクソ設計にこれ以上突っ込まないでw

236 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 08:20:20.55 ID:lCXt6uga.net]
>>200
>>183

237 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 21:30:38.37 ID:NaGSjNyA.net]
質問
実引数が2個以上必要なコンストラクタをexplicitにする意味ってある?

238 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 21:34:04.63 ID:NaGSjNyA.net]
自己解決しました。
すみません忘れて

239 名前:デフォルトの名無しさん mailto:sage [2016/08/30(火) 08:09:06.98 ID:ftymYuoJ.net]
ハゲの好きそうなコード
f ( { p1, p2, p3 } ) // explicitだとエラー



240 名前:デフォルトの名無しさん [2016/08/30(火) 15:46:08.79 ID:0Xvfpf4x.net]
ハゲの嫌いなことは、言語に機能を追加すること。
もともとC with classesとか始めた張本人がハゲなんだけど、
まあ今のC++を見てると気持ちはわかるね。

241 名前:デフォルトの名無しさん [2016/08/30(火) 19:30:10.07 ID:0Xvfpf4x.net]
ハゲの論理を、ハゲロンという。
1価の陰イオンとなる第17族元素である。

242 名前:デフォルトの名無しさん mailto:sage [2016/08/30(火) 23:18:33.93 ID:lqTGpbVF.net]
もっと増やせと言いたいところだがこれ以上大きく変えるような機能はあるのか?
C#みたいなプロパティは欲しいけど

243 名前:デフォルトの名無しさん mailto:sage [2016/08/30(火) 23:37:14.11 ID:ocxqe0WR.net]
そんなんtemplateで書けばいいじゃん

244 名前:デフォルトの名無しさん mailto:sage [2016/08/30(火) 23:42:07.71 ID:xMG6EfaL.net]
は?テンプレートでC#のようなプロパティどうやって実現するんだ?

245 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 00:35:52.45 ID:ityOLHmm.net]
それっぽいのは出来なくはなさそうだけど
プロパティの簡潔さには程遠いな

246 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 00:39:34.42 ID:yHeo0PbI.net]
C#を知らんやつにも分かるように説明汁

247 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 01:23:54.91 ID:/ANAyxIk.net]
こんな感じか?
きっちり書くと更に手間かかるな
https://ideone.com/HVRzE1

C#だとこう書ける
https://ideone.com/idjL0A

248 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 01:38:11.88 ID:1fkGDbVO.net]
>>240
> は?テンプレートでC#のようなプロパティどうやって実現するんだ?
今年一の名言だなw

249 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 01:57:19.27 ID:6ukDv4b6.net]
>>243
ダッサ
お前C#のプロパティの便利さ全然理解してないね



250 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 01:59:51.36 ID:j3ifnVdn.net]
何が名言なのかさっぱり分からんのだが
こんな書き方で満足する人いるの?

251 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 02:07:02.38 ID:BDrnIBJY.net]
C++のstd::vector<bool>がクソ扱いされていることを
理解している気配は全く無いな

252 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 02:09:05.10 ID:BDrnIBJY.net]
むしろ今年一の名言は>>211

253 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 02:21:29.37 ID:/ANAyxIk.net]
>>245
アスペ

254 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 02:44:37.65 ID:AgvBQXnk.net]
プロパティって最初に採用されたのはVBっていうかCOMだよね確か。

255 名前:デフォルトの名無しさん [2016/08/31(水) 09:31:40.10 ID:+TzIiYAW.net]
プロパティも欲しいけど簡単に使える部分配列も欲しいな

256 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 09:57:4 ]
[ここ壊れてます]

257 名前:3.27 ID:WLaQrr/5.net mailto: >>243
なんじゃこりゃ。全然違うじゃん。
これをC#のプロパティと思ってるの?
もっと普通のケース(各メンバ変数にgetメソッドとsetメソッド)
で例示してくれよ。
[]
[ここ壊れてます]

258 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 10:03:12.25 ID:WLaQrr/5.net]
こういうコードをC#のプロパティのように
テンプレートで実装する方法を書けっつってるのに、
なんであんなひねくれた例が出てくるんだよw

class employee
{
public:
employee(int id, std::string name);
int GetID();
void SetID(int id);
std::string GetName();
void SetName(std::string name);
private:
int id;
std::string name;
}

259 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 10:03:54.93 ID:sRpVtXPN.net]
ほならね



260 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 10:14:08.99 ID:WLaQrr/5.net]
上のダサい例だとgetterやsetter書くよりコードも複雑化してるじゃねーか。
意味ねーじゃん。

261 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 10:40:08.79 ID:N4JrJ9XH.net]
プロパティやりたいならC++Builder

262 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 11:12:33.68 ID:utsO37AQ.net]
お手本はよ

263 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 11:18:56.64 ID:N4JrJ9XH.net]
こういうコードをC#のプロパティのように
テンプレートで実装する方法を書けっつってるのに、
なんであんなひねくれた例が出てくるんだよw

class employee
{
public:
employee(int id, std::string name);
__property int ID = { read = GetID, write = SetID } ;
__property std::string Name = { read = GetName, write = SetName } ;
private:
int id;
std::string name;
int GetID();
void SetID(int id);
std::string GetName();
void SetName(std::string name);
}

264 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 11:20:17.85 ID:N4JrJ9XH.net]
うわw赤の他人のコメントまでコピペしてしもうたw

class employee
{
public:
employee(int id, std::string name);
__property int ID = { read = GetID, write = SetID } ;
__property std::string Name = { read = GetName, write = SetName } ;
private:
int id;
std::string name;
int GetID();
void SetID(int id);
std::string GetName();
void SetName(std::string name);
}

265 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 11:40:45.52 ID:utsO37AQ.net]
標準で頼む

266 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 11:53:46.21 ID:N4JrJ9XH.net]
標準じゃないけどめっちゃ便利やよ

267 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 12:18:33.24 ID:XvHw9frf.net]
教えてください。

Qt creatorで作成しており、GUIのボタンからwin7の拡大鏡(magnify.exe)を起動したいと思っています。

問題は、shellexecuteやQProcessで実行すると拡大鏡の画面が真っ黒になり適切に使用できません。
キーボードから、winと+のショートカットでで起動すると問題なく起動すると真っ黒になることはないので、これを行いたいです。

そこで、GUIのボタンクリックでキーボードのショートカットを実行するほうほうがあれば教えていただきたいです。
よろしくお願いします

268 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 13:33:26.19 ID:6ukDv4b6.net]
Qtスレに行ってください
echo.2ch.net/test/read.cgi/tech/1438593408/

269 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 14:02:00.01 ID:XvHw9frf.net]
誘導ありがとうございます。

Qt抜きで、c++的には実現できないのでしょうか?



270 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 14:22:32.78 ID:mqymnS7Z.net]
Qt使ったこと無いけど呼び出し時の権限が足りないんじゃないかな

271 名前:デフォルトの名無しさん [2016/08/31(水) 14:25:22.52 ID:utsO37AQ.net]
とりあえずsystem("magnify");して同じ症状なら別の問題

272 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 16:18:18.52 ID:f/lfR+US.net]
プロパティ標準で書いたらこんな感じ?
getを使う時c#にはない()がいるけど
https://ideone.com/BazQ1D

273 名前:デフォルトの名無しさん [2016/08/31(水) 16:56:40.77 ID:/MnV3wL6.net]
リファレンサオブジェクトをpublicデータメンバで持てって?

274 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 17:50:46.05 ID:WLaQrr/5.net]
>>267
合格。絶対にこんなコード書かないけど、
プロパティの要件は一応満たしている。

275 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 18:02:51.48 ID:N4JrJ9XH.net]
vectorとかの配列リファレンサがこんな形だよな

276 名前:デフォルトの名無しさん [2016/08/31(水) 18:55:44.77 ID:gRHWeOr5.net]
ここを見てるとC++のダメさ加減がよくわかる。

277 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 19:41:02.78 ID:YUscqvM8.net]
不要だからコア言語に追加されなかったんだろう

278 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 20:06:57.16 ID:XvHw9frf.net]
>>266のアドバイスで、使い方が間違っていなさそうだったので、違う拡大鏡ソフトを使用することで解決しました

279 名前:デフォルトの名無しさん [2016/08/31(水) 20:41:02.91 ID:+TzIiYAW.net]
プロパティ不要とか苦行かよ



280 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 20:43:28.45 ID:YUscqvM8.net]
プロパティなんてあってもたいして使わない予感

281 名前:デフォルトの名無しさん [2016/08/31(水) 20:54:10.62 ID:/MnV3wL6.net]
実感じゃねえのかよ

282 名前:デフォルトの名無しさん [2016/08/31(水) 20:57:52.91 ID:ntcwlW+6.net]
プロパティ否定してる奴はエアプだってはっきりわかんだね

283 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 21:00:08.58 ID:NSLbELcw.net]
クラス書かないからわかんない。テヘペロ。

284 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 21:32:42.17 ID:viOT3sew.net]
Visual Studioだったら「共通言語ランタイム サポート」を有効にすればプロパティ使えるで(ゲス顔

285 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 21:48:33.01 ID:MERKTov5.net]
C++/CLIは別言語

286 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 21:59:28.02 ID:/ANAyxIk.net]
アクセス制限もいらないからな
余計なことして何が起こっても全て使用者の責任

287 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 22:34:19.56 ID:xAEFTakh.net]
全部グローバル変数にすると便利だよ

288 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 22:57:22.63 ID:YUscqvM8.net]
プロパティよく使うってひとは要するに属性を個別にコントロールすることが多いって事かね?

289 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 23:03:00.58 ID:6ukDv4b6.net]
>>283
そうかもね。設計が下手なんじゃないかな。
もっとも俺もC#ではプロパティ使いまくるけどね。大概のは{get; private set;}だな。



290 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 23:06:47.51 ID:gUL/+EZq.net]
は? 属性を個別にコントロールするのが設計の良し悪しとどう関係するんだ?

「C++で標準でできないことは出来る必要がないから、
 そもそも、やろうとする奴が悪いんだ」みたいな幼稚な思考だったらやめとけよ?
それは宗教だ。

291 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 23:10:36.99 ID:YUscqvM8.net]
>>285
俺は良し悪しは言ってないよ

292 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 23:23:15.94 ID:YUscqvM8.net]
まあ外部に
「このクラスは内部に属性A、属性B、属性Cを持ち、その状態とアクセスを管理します」
みたいな仕様を公開してるクラスだったらプロパティは使いたくなるだろうな。
でもどちらかというとそういうクラスは少ないような気がしたのさ。

293 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 23:36:37.26 ID:mzwgRQN4.net]
そんなほとんど起こらんようなケースについて抽象的な説明されてもよくわからんわ。

294 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 23:45:12.50 ID:YUscqvM8.net]
>>288
何が?

295 名前:デフォルトの名無しさん [2016/08/31(水) 23:51:01.09 ID:/MnV3wL6.net]
>>287
普通にprivateデータメンバじゃん、それ

296 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 23:56:32.05 ID:YUscqvM8.net]
>>290
いや、それらの属性を持ってること自体を外部に公開してる。
privateメンバだったらそんなことは内部仕様にしか書かないでしょ。

297 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 00:14:02.16 ID:PJEueDDa.net]
簡潔に

「どんな属性を持ってるか自体を隠蔽するのが普通」

って書けばいいじゃん

298 名前:デフォルトの名無しさん [2016/09/01(木) 00:31:43.23 ID:8Xtys+zE.net]
プロパティって、何が便利なん?
C#はGUI作成程度しか使わない俺的感性だと、setter/getterで十分じゃね?と思うんだが、メリットをトクトクと語ってくれ。

299 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 04:18:24.20 ID:siIxmZ+U.net]
プロパティは
classの実装とインターフェースの分離が容易にします
プログラムの字面の変更なしで
後から小細工ができます
言語仕様に内包されたパッチ機能?w
>>293
十分だと思います
後から改変するとき小細工が出来て便利なのかな?



300 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 06:05:34.36 ID:quvSlm2c.net]
いや、setterとgetterがめんどいからプロパティがあるんでしょw

301 名前:デフォルトの名無しさん [2016/09/01(木) 07:26:09.87 ID:8Xtys+zE.net]
>>295
手間変わらなくね?

302 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 07:37:27.71 ID:d6w4LGKM.net]
>>296
C#のプロパティは超便利で手間が大きく違う
使ってみれば分かるよ
いまだにこんな便利なものが実装されていないJavaはゴミ

303 名前:デフォルトの名無しさん [2016/09/01(木) 08:36:37.64 ID:8Xtys+zE.net]
>>297
いや、使った事あるんだけど…
その上でわからないからトクトクとお願いしてる。

304 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 08:44:04.42 ID:7t+U5xjY.net]
そもそもsetterとgetterが必要なのかって話でしょ

305 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 08:45:24.36 ID:ZAvvKiiS.net]
手間はさほど変わらんと思うけどあとで読んだ時に他のメッセージ転送に埋もれない気はする

306 名前:デフォルトの名無しさん [2016/09/01(木) 08:51:59.38 ID:8Xtys+zE.net]
>>300
ああ、なるほどね。
意味論として、OOのメッセージとプロパティが、C#のメソッドとプロパティに相当するのか。
言われてみれば当然かも。
あざっす。

307 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 09:01:16.42 ID:DsNIQM1p.net]
超便利と書くからワケがわからなくなる
いちいちGetなんちゃらSetなんちゃらと書くよりも既読性が上がる

308 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 09:39:25.12 ID:DsNIQM1p.net]
既読性って何だ?w
可読性だったわw

309 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 09:52:32.53 ID:oseS/uHr.net]
引数0の関数は括弧省略できればいいんじゃないのか



310 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 10:08:05.72 ID:d6w4LGKM.net]
「超便利」が分かって貰えないとか
ほんとにC#のプロパティ使ったことあるんですかねえ(笑)

311 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 11:42:15.33 ID:n+lE1LxE.net]
使えば超便利、だがあまり使わない、って両立するけどな。

312 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 11:57:18.01 ID:f8G6zOLb.net]
listenerに出来るなら便利だけど、単なるsetter,getterじゃなあ

全部メソッドの方が統一感はあると思う。

313 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 12:08:36.30 ID:n+lE1LxE.net]
getter/setter(プロパティに相当するものを含む)を持つクラスと持たないクラスの比率ってどんなもん?
俺は1対5ぐらいだ。
だからあれば便利というのはわかる。

314 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 12:30:21.99 ID:LcnNSect.net]
>>296
手間は結構変わるよ。
まず、getter/setterを普通に定義するのより、
プロパティの方がコード量が単純に減る。
変数名と関数名の一致だとかも考慮しなくていいから、
保守もしやすい。

その上、利用時にはpublicメンバ変数のように使えるから、
呼び出し先のコードもすっきりする。

必須ではないから不要と思うなら使わなければいいけど。
便利機能ってだけだし。

315 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 12:31:26.62 ID:LcnNSect.net]
>>304
それはVBAとかそうだけど、ややこしいからやめてくれw

316 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 12:46:32.26 ID:d6w4LGKM.net]
>>298
単純な話こういうことを言ってるんだけど。。。

JavaやC++の場合
private int x;
public getX(){return x;}
public setX(int val) {x=val;}

C#の場合
public int X {get; set;}

手間は1/3以下になってる
ほんとに使ったことあるの?

317 名前:デフォルトの名無しさん [2016/09/01(木) 13:12:08.94 ID:+q6YP6fM.net]
あんなのが欲しい、こんなのが欲しいと、
みんな口々に勝手なこと言うのを
あれもこれもと言語に取り込む
ということをするかしないかというポリシーは
言語が違えば違って当たり前

C#でどうだからC++もどうせよとか
C#でどうだからJavaはゴミとか
そんなにC#が好きならC#だけ使ってればいい

318 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 13:23:01.35 ID:d6w4LGKM.net]
うるせー(笑)なんだかんだ言っても一番好きなのはC++だよ
高速性が求められる場面ではほぼ唯一の選択肢だし
他の言語に比べて不便なところがあったとしても、かゆいところに手が届く感は最強だし

319 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 13:37:36.32 ID:Zz5UEunk.net]
public変数とgetter/setter付きのprivate変数って何が違うの?



320 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 13:52:30.49 ID:d6w4LGKM.net]
>>314
get/set時にコードが介入できる

321 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 14:51:04.12 ID:nGqVI4Wr.net]
public変数なんか使ったら、まともにプログラミング出来ない。
これは、あり得ない選択

変数は出来るだけ、狭いスコープに閉じ込めるのが基本

322 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 14:52:33.38 ID:3wSPfZnR.net]
>>314
昔見た理屈だと、ゲッターセッターは間に正規化とか突っ込めるからセーフティなんだと。

323 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 15:42:38.63 ID:n+lE1LxE.net]
>>316
上段も下段もそれぞれ正しい

324 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 16:38:25.17 ID:f8G6zOLb.net]
>>314
c++の場合、表記が違うので入れ替えが大変。

325 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 16:52:35.75 ID:oseS/uHr.net]
直接変数に対して入出力してるだけのセッターゲッターでも将来を見越してわざわざ作ってるってことか?

326 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 17:03:57.26 ID:d6w4LGKM.net]
>>320
そういう場合も多いかもしれないけど、.Net環境においてはpublicプロパティにすることによる恩恵は多々ある
例えばDataGridViewに内容を表示するときなど

327 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 18:10:45.91 ID:3cPIMSrP.net]
>>314
public変数じゃ、変更されたタイミングで描画をアップデートするみたいな処理がやりにくくなる
needUpdateViewみたいなフラグをtrueにできるだけでも、getter/setterはあったほうがいい

単なる構造体に近いようなクラスでも、データの不整合を起こさないようにバリデーションが行えるという意味では重要
後から値の範囲を制限したくなるとか、複数の変数間で整合性のとれないケースを排除したくなるということはよくある
例えば、Personクラスが初めは性別と名前しかなかったところを、そこに「父」「母」「息子」「娘」みたいな属性を付けたくなったら、性別女で「父」は弾きたくなる
public変数だったらこれはできないけど、setter経由であればできる
「親」「子」にして性別と合わせて計算すればいいとかいう話があるかもしれんが、余談だがその場合はgetterで男女+親子の属性で「父」とかを取り出すことができるね

328 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 18:27:41.58 ID:zfFV4MMV.net]
getterやsetterの関数呼び出しならまだしも、propertyでファイルアクセスやらネットワークのやら時間かかる処理入れられると嫌な感じ

329 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 18:41:33.44 ID:L3a4bYLC.net]
>>323
それは利用者の予期を裏切るような実装をするなって話であって、
ゲッタセッターならよくてプロパティーではだめだって話じゃないと思うけど



330 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 19:29:54.38 ID:quvSlm2c.net]
>>312
C++も11以降がんがん新しい要素取り入れてるんだから、
今の仕様が絶対的なものじゃないぞ。今の仕様を絶対視するのは宗教だ。

331 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 19:36:30.23 ID:qC9ojyjS.net]
>>322
同性婚の夫婦が養子をとった時に破綻する先見性のない設計ですね w






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<234KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef