[表示 : 全て 最新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/ (日本語)

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]
結局、プロパティは要らんわな。

タイプ量の問題ならマクロで解決出来るし。

368 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 12:26:51.71 ID:6Qab/oE8.net]
これからのC++にプロパティーは必須だな。
これからもどんどん新しい機能を取り入れてどんどん
わけがわからなくなるといい。

369 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 12:41:00.31 ID:1fpVQ5H8.net]
マクロは入力補完できないし衝突の可能性がある



370 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 12:49:08.18 ID:6Qab/oE8.net]
C++はマクロで出来ることをどんどん機能として取り込んで来たのに
いまさら後戻りはできない。

371 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 18:00:48.43 ID:96M6CE+e.net]
C#の「プロパティ」って機能がどんなのか知らないけど、
現在C++にないから不要な機能だ、と突っ張るのは危険かも知れないよ。

いつか「次の規格から『C#のプロパティ』と同様の機能が追加」と
発表されるかもしれない。これまでもそうやって肥大化してるじゃない。

372 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 18:28:49.74 ID:qjeLwgBZ.net]
Javaでもそうだけどgetter/setterは言語的には単なるメソッドでしかないが
C#のプロパティは言語的にメソッドとは違うものとして認識出来るようになっている
そこから様々な便利さが出てきている

373 名前:デフォルトの名無しさん [2016/09/02(金) 19:27:06.33 ID:nL/2u0CX.net]
>>364
マクロで出来ることではなく、
マクロに頼っていたことを、
マクロを使わずに出来るようにしてきたんだよ。

スコープに従わないオブジェクト指向の敵との戦いだ

374 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 19:37:33.13 ID:XrGCfAOV.net]
C++のテンプレートってポストプロセッサといっていいよね。
マクロみたいなもん。

375 名前:デフォルトの名無しさん [2016/09/02(金) 20:24:08.55 ID:8Rlh5aGL.net]
↓テンプレートとマクロは全く違うもの

376 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 20:41:05.83 ID:Wj/juS31.net]
ソースコードの書き換えという点では同じ。

377 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 20:49:32.19 ID:W5XwdQxs.net]
テンプレートはテキスト置換じゃないよ。
あれはコンパイルタイムに計算してるんだよ。

378 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 20:49:47.52 ID:1fpVQ5H8.net]
テンプレートが単なる置き換えだと思ってるのか

379 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 20:50:16.78 ID:BGbCtBYN.net]
マクロの親玉だ



380 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 20:52:42.81 ID:W5XwdQxs.net]
テンプレートもconstexprもある種の計算機のサブセットだからなぁ。

381 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 22:57:15.93 ID:Q3H4IaZb.net]
コンパイル時に計算できることなんてたかが知れてるし、使い道ないんだよな






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

前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