- 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/ (日本語)
- 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
- 332 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 19:46:48.63 ID:zfFV4MMV.net]
- メンバ変数ぽく使えるより、指示すればgetter,setterを自動生成してくれる方がいいな。
参照とって書き換える関数に渡したらどうなるんだとか考えると、変数っぽく使えるのは混乱招くだけのような。
- 333 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 20:02:06.91 ID:f8G6zOLb.net]
- >>326
不要な汎用化じゃね? 必要になってから修正でいいだろ。
- 334 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 20:16:20.03 ID:qC9ojyjS.net]
- >>328
ネタに突っ込むならもう少し面白いやつ頼むわ
- 335 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 20:31:55.38 ID:n+lE1LxE.net]
- setter/gettrrが要る要らないの話題になるとpublic変数の話題に転びがちだな。
ちょっともにょもにょする。
- 336 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 20:40:39.28 ID:n+lE1LxE.net]
- 外部から属性を設定せざるを得ない状況がけっこうあって、なかなかリファクタリングも難しいってことか。
- 337 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 21:41:16.10 ID:quvSlm2c.net]
- >>327
C++でプロパティ導入するなら、getterの戻り値は参照かconst参照のどちらかに制限すれば、 その辺の問題は解決しそう。
- 338 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 23:31:36.63 ID:kyBhPm5k.net]
- そういや、パッと見は普通のフィールド(メンバ変数)なせいで
実行速度とか気にせずに気楽に使ってしまいやすい、なんて弊害も多少あるみたいね。
- 339 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 23:49:26.27 ID:VuYRfyfh.net]
- てかgetter/setterでもプロパティカプセル化が弱くなるから原則使わないのが基本だろ
フラグをプロパティ化してどうのこうのとか言ってるやついたけど、参照透過性なくなって状態遷移図保守の雇用を産みだしてるだけ
- 340 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 23:55:31.16 ID:quvSlm2c.net]
- それはおかしいだろ。メンバ変数を外から操作する必要性は普通にある。
例えばWindowクラスとかどうすんの。メンバ変数変えられないWindowクラスとか欠陥品でしょ。
- 341 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 23:55:52.32 ID:oRYPM1bK.net]
- >>334
言いたいことはわかるが、 外からの属性アクセスをやめたとしても、 実際に内部状態が変化するなら参照透過ではないよな?
- 342 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 23:58:42.81 ID:VuYRfyfh.net]
- >>335
お前がWindowクラスを書くのは自由だけど、C++なんだから数値計算ライブラリとかを想定して書けよ >>336 もちろん
- 343 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 00:04:47.23 ID:q6GNZ6RD.net]
- >>337
否定されてから急に話題を限定し出すってのは一番見苦しいパターンだぞw 素直に間違いを認めろよ。数値解析だっていくらでもそういう事例あるだろ。
- 344 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 00:23:31.33 ID:dxT5btnL.net]
- あるかないかで言えばもちろんあるけど、外部主導の状態コントロールは避けたいので、
設計に時間をかけられるときはhetter/setterは減るだろう、ってだけ。
- 345 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 00:25:04.39 ID:dxT5btnL.net]
- X hetter
〇 getter
- 346 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 00:32:46.64 ID:wMSGanuZ.net]
- C++はプロパティないのでコード書くときは短く済ませたいんで
ゲッターはSize()、 セッターをSetSize()にして Get省略してる
- 347 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 00:50:46.08 ID:VaOayOrf.net]
- >>341
自分はSetも省略する たまに引数の関係でできない時もあるけどさ
- 348 名前:デフォルトの名無しさん [2016/09/02(金) 04:12:21.27 ID:+CUdjKtm.net]
- 俺はオーバーロードになると関数ポインタとるのが面倒になるからsetぐらいは省略しないな
- 349 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 04:38:51.30 ID:17n5VyUh.net]
- メンバ関数ポインタってほとんど使わないから気にしたことなかった…
- 350 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 06:31:01.77 ID:96M6CE+e.net]
- >>342
ああ、引数の違いを利用すればsetもgetも省略できるのか。 int value(int val); ... メンバvalueの値の設定 int value(); ... メンバvalueの値の参照 同じ関数名で機能の異なるものを作るのは危険、 ということから思いつきもしなかったけど、 この使い方なら便利で有用かも知れないな。
- 351 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 07:16:35.65 ID:Vf4h0u1D.net]
- >>345
> int value(int val); ... メンバvalueの値の設定 なぜに戻り値?
- 352 名前:345 mailto:sage [2016/09/02(金) 07:33:47.21 ID:96M6CE+e.net]
- >>346
値の範囲制限とかする場合に、 戻り値に「実際に格納された値」を入れて返す。 あと瑣末なことだけど、 cout << a.value(val) << endl; みたいに格納しつつ値も使う、ができてちょい便利。
- 353 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 07:35:34.05 ID:MC2dvnuP.net]
- そう言うの、以前の値を返すのも多いから紛らわしいな。
- 354 名前:デフォルトの名無しさん [2016/09/02(金) 07:36:05.31 ID:sd/G3GoC.net]
- std::exchange的な〜?
- 355 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 07:49:11.95 ID:Vf4h0u1D.net]
- >>347
> 戻り値に「実際に格納された値」を入れて返す。 こっちはまだわからなくもないが > 格納しつつ値も使う、ができてちょい便利。 みたいな設計はどうかと思う
- 356 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 08:01:45.25 ID:/uIui9G6.net]
- そうだな
(a = b) = c; みたいな20世紀の設計思想だな
- 357 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 08:01:48.98 ID:5Aji0+2+.net]
- *this
- 358 名前:を返してしまう []
- [ここ壊れてます]
- 359 名前: ◆SEdFBOkLSw mailto:sage [2016/09/02(金) 08:29:24.90 ID:Nu/77N8P.net]
- >>352
メソッドチェーン出来て便利だよね。
- 360 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 08:44:56.31 ID:OksuLk+6.net]
- 演算子のオーバーロードみたいな使い方のポリシーでは
a.val(b.val() + c.val()) みたいなやつ というかどうしてもプロパティが欲しけりゃ演算子オーバーロードで真似っこできるじゃん
- 361 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 08:48:54.95 ID:xzsbRhmn.net]
- は? 演算子オーバーロードでどうやってプロパティの代用すんだよw
プロパティ分かってない奴か? コードを示して見ろ。
- 362 名前:デフォルトの名無しさん [2016/09/02(金) 09:12:04.14 ID:+CUdjKtm.net]
- ideone.com/rZ2S2m
こんな感じか?
- 363 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 09:14:47.55 ID:OksuLk+6.net]
- >>355
ググれば普通に出るが? なんでそんなに必死なの boost.2283326.n4.nabble.com/the-best-possible-c-properties-implementation-tt2626498.html
- 364 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 09:20:57.20 ID:OksuLk+6.net]
- >>356
そうね、そういう感じ
- 365 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 10:36:49.94 ID:AFnhG1K/.net]
- それじゃ仮想関数にできないじゃん。やり直し。
無理やりオーバーライドできるようにしなくていいよ。 既にコードも必要以上に複雑化しててgetter/setterの方がマシなレベルだし。
- 366 名前:デフォルトの名無しさん [2016/09/02(金) 12:07:39.19 ID:+CUdjKtm.net]
- >>359
NVIって知ってる?
- 367 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 12:09:10.62 ID:rUpx5Cs1.net]
- 結局、プロパティは要らんわな。
タイプ量の問題ならマクロで解決出来るし。
|

|