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


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

C++相談室 part134



1 名前:デフォルトの名無しさん mailto:sage [2018/01/20(土) 09:05:42.21 ID:mJKRg6iz0.net]
次スレを立てる時は本文の1行目に以下を追加して下さい。
!extend:on:vvvvv:1000:512

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

前スレ
C++相談室 part133
mevius.5ch.net/test/read.cgi/tech/1511509970/

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

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

[C++ FAQ]
https://isocpp.org/wiki/faq/
www.bohyoh.com/CandCPP/FAQ/ (日本語)
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured

810 名前:デフォルトの名無しさん mailto:sage [2018/03/24(土) 11:08:12.95 ID:aqtEECgt0.net]
ガンダム言語の表現力を信じろ

811 名前:デフォルトの名無しさん mailto:sage [2018/03/24(土) 11:10:56.81 ID:eFb1d56B0.net]
>>784
じゃあお前が説明しろよ。
お前は馬鹿だから出来ないと思うがな。

そもそも>>764は誰向けのレスだよ?

812 名前:デフォルトの名無しさん mailto:sage [2018/03/24(土) 11:18:43.16 ID:aqtEECgt0.net]
コーディング規約にchar aznable禁止っていうのを見たことあるから
C++にガンダム要素を入れるのはタブー

813 名前:デフォルトの名無しさん mailto:sage [2018/03/24(土) 11:28:25.89 ID:eFb1d56B0.net]
>>781
> テンプレート引数に変数突っ込んでなんで動かないのぉぉとか初心者はよくあるよ
ねえよ

> 説明してる本がないって本当か?本当なら世の本がクソすぎる
世の本は概して糞だ。これは事実だ。

というかここら辺の認識がずれるのは世代ギャップだ。
現状の本を書いてきている世代は全員CをやってからC++をやっている。
だから「静的」「動的」の区別が付かない状態でテンプレートを触ることがなかった。
当然そこを解説した本もそんなにあるはずがない。

お前らの世代がCをやらずにいきなりC++を始め、それで色々苦労した経験があるのなら、
お前らの世代の連中が本を書かなければならない。ただそれ以前に、
俺はその必要(全くの初心者がCをやらずにC++を始める)があるとは思えないが。

入門書を書いている連中はプログラマでも宣教師でもなく、ただのテクニカルライタだ。
だから需要(売れる)があれば書くだけ。今無いのは需要がないと見られているから。
俺もこの見方については同意する。
最初のプログラミング言語がC++ってのは単純に選択を間違えてる。

814 名前:デフォルトの名無しさん [2018/03/24(土) 11:30:12.41 ID:Z79Bg+7E0.net]
C++とJavascript以外学ぶ必要があるとは思えない。

815 名前:デフォルトの名無しさん mailto:sage [2018/03/24(土) 12:01:13.85 ID:3GLZsUhUM.net]
>>790
それはさすがに世間が狭すぎる
土方志望としてもJava程度は触っとけ

816 名前:デフォルトの名無しさん [2018/03/24(土) 12:18:09.21 ID:Z79Bg+7E0.net]
Javaは当初の理念を失ってしまったように感じる。

817 名前:デフォルトの名無しさん mailto:sage [2018/03/24(土) 12:21:12.10 ID:aqtEECgt0.net]
JavaはJVM上で動く一言語に成り下がったからな

818 名前:デフォルトの名無しさん mailto:sage [2018/03/24(土) 17:03:55.62 ID:nPxx/G4d0.net]
今からJavaやるくらいならC#にしとけ



819 名前:デフォルトの名無しさん [2018/03/24(土) 18:05:30.46 ID:upExxHyGa.net]
みなさん、ありがとうございました。

カーニハン他の本をまず読んでみようと思います。

>>794

そうなんですか?

Robert SedgewickらのAlgorithmsという教科書がJavaで書かれているため、
Javaの本も買って読んでいます。

ところで、学術的?な本では、オブジェクト指向言語としてC++かJavaが
大抵使われていますが、C#は使われていません。これはマイクロソフト
という一企業が設計した言語だからでしょうか?

820 名前:デフォルトの名無しさん mailto:sage [2018/03/24(土) 18:06:22.88 ID:upExxHyGa.net]
たとえば、プログラミングコンテスト関係の本では大抵C++が使われています。

821 名前:デフォルトの名無しさん mailto:sage [2018/03/24(土) 18:07:40.93 ID:upExxHyGa.net]
そういう理由から、本当はC++ではなくC# + Visual Studioを勉強したいのですが、
C++の本(ロベール)を買って読んでいます。

822 名前:デフォルトの名無しさん mailto:sage [2018/03/24(土) 18:12:06.94 ID:aqtEECgt0.net]
そのうち大抵の言語は経験なくてもリファレンス片手に使えるようになるから好きなもん使え

823 名前:デフォルトの名無しさん mailto:sage [2018/03/24(土) 18:12:52.16 ID:0qB0BmlJ0.net]
C++だって元々はAT&T製なんだが

824 名前:デフォルトの名無しさん mailto:sage [2018/03/24(土) 18:20:10.81 ID:LkK69e8iM.net]
javaも神託に従わないと訴えられるという…

825 名前:デフォルトの名無しさん mailto:sage [2018/03/24(土) 18:50:18.42 ID:eFb1d56B0.net]
>>797
なら素直にC#やっとけ。
その後に必要ならC++で何も問題ない。

C#は商業的につまずいたのでJavaほどの知名度はないが、
言語自体はJavaよりは断然いい。(後発だから当然だが)

826 名前:デフォルトの名無しさん mailto:sage [2018/03/24(土) 19:07:41.38 ID:weQnYJFBd.net]
ねーねー。
STL作った人は、共産主義国で食中毒にあって、ベッドの上で朦朧とした頭で閃いたって話だった気がしたけど、どっかにその話のソースある?
ググっても見つからないよー

827 名前:デフォルトの名無しさん mailto:sage [2018/03/24(土) 19:12:27.84 ID:UtKAK1R90.net]
神託は絶望の淵やタヒぬ直前に見えたりするもんやで

828 名前:デフォルトの名無しさん mailto:sage [2018/03/24(土) 19:18:50.87 ID:LkK69e8iM.net]
>>802
見つけてきたぞ。何処かで発表か何かするの?
www.stlport.org/resources/StepanovUSA.html

ところでこのインタビューにあるtamagawa numberってなんだろう



829 名前:デフォルトの名無しさん mailto:sage [2018/03/24(土) 19:25:16.65 ID:upExxHyGa.net]
玉河数

https://ja.wikipedia.org/wiki/%E7%8E%89%E6%B2%B3%E6%81%92%E5%A4%AB

に書いてありました。

830 名前:デフォルトの名無しさん mailto:sage [2018/03/24(土) 19:30:46.97 ID:LkK69e8iM.net]
玉川数じゃ出てこないわけだ

831 名前:801 mailto:sage [2018/03/25(日) 06:55:48.47 ID:FlrNzX5dd.net]
皆様ありがとーございます。
論文の枕で書こうかと思いまして

832 名前:デフォルトの名無しさん mailto:sage [2018/03/25(日) 11:36:01.08 ID:Lywxeunja.net]
char* str = "abc";

とは書かずに、

const char* str = "abc";

と常に書くようにと本に書いてあります。

理由は文字列リテラルは直接書き換えてはいけないからであると書かれています。

●コンパイルは通っても、実行するとエラーになることもある。
●同じ内容の他の文字列リテラルまで書き換えられてしまうことがある。

とも書かれています。

禁止されているにもかかわらず、コンパイルが通る可能性があるというのはどういう
ことなのでしょうか?

(1)コンパイルエラーが発生
(2)コンパイルは通るが実行するとエラーが発生
(3)コンパイルは通り、実行してもエラーが発生しないが、同じ内容の他の文字列
リテラルまで書き換えられてしまうという不具合が起こることがある。

コンパイラーの設計者には、(1)、(2)、(3)の選択肢があるのはなぜでしょうか?

禁止されているのだから、一律にコンパイルエラーにするのが自然に思われます。 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)


833 名前:デフォルトの名無しさん mailto:sage [2018/03/25(日) 11:39:58.12 ID:Lywxeunja.net]
const char* str = "abc";
const char ca[] = {'a', 'b', 'c', '\0'};

の二つは同じことだと思っていましたが、これは違うということでしょうか?

const char* str = "abc";

では、"abc"をある場所に格納しておき、それを使いまわしたりすることがある
ということでしょうか?

例えば、

const char* str1 = "abc";

const char* str2 = "abc";

と書いたときに、 str1 == str2 になることがあるということでしょうか?

一方、

const char ca1[] = {'a', 'b', 'c', '\0'};
const char ca2[] = {'a', 'b', 'c', '\0'};

と書いた場合には、それぞれ、別に格納場所が確保されるということでしょうか? 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)


834 名前:デフォルトの名無しさん mailto:sage [2018/03/25(日) 11:41:04.91 ID:tMBl9Z88M.net]
>>808
>>469

835 名前:デフォルトの名無しさん mailto:sage [2018/03/25(日) 11:44:30.72 ID:Lywxeunja.net]
すみません。
カーニハンらの本の日本語版のp.127に書いてありました。

char amessage[] = "now is the time";
char *pmessage = "now is the time";

の違いについてです。

そして、文字列の内容を変えようとすると、その結果は不定となる

と書かれいます。なぜ不定としているのかについては理由は書いてありません。

836 名前:デフォルトの名無しさん mailto:sage [2018/03/25(日) 11:46:43.36 ID:Lywxeunja.net]
>>810

ありがとうございました。
故意に違反状態にするということもあるんですね。
正直言って無駄に分かりにくいところがあるんですね。

837 名前:デフォルトの名無しさん mailto:sage [2018/03/25(日) 12:26:26.43 ID:NNknxHvv0.net]
うん過去のもうメンテナンス不能なコードは膨大なんでそうするしか仕方ないんだよ

838 名前:デフォルトの名無しさん mailto:sage [2018/03/25(日) 12:40:02.16 ID:L+/M5ACh0.net]
以前にも同じ質問出たし荒しかとおもた



839 名前:デフォルトの名無しさん [2018/03/25(日) 13:01:03.23 .net]
C++相談室で出す話題でもなかろに

840 名前:デフォルトの名無しさん mailto:sage [2018/03/25(日) 13:06:46.65 ID:zn3nsIh00.net]
一応初心者向けのスレっていう体じゃなかったのか?

841 名前:デフォルトの名無しさん [2018/03/25(日) 13:52:43.26 .net]
ここか、

C言語なら俺に聞け 145
mevius.2ch.net/test/read.cgi/tech/1519046038/

せめてここ向きの質問だろう

【初心者歓迎】C/C++室 Ver.102【環境依存OK】
mevius.2ch.net/test/read.cgi/tech/1509780815/

842 名前:デフォルトの名無しさん mailto:sage [2018/03/25(日) 15:10:26.39 ID:9t80sXyiM.net]
>>811
旧K&Rつまり第一版は書換可能だったの

843 名前:デフォルトの名無しさん [2018/03/25(日) 15:22:53.51 .net]
C++スレでK&Rの話すんなや

844 名前:デフォルトの名無しさん mailto:sage [2018/03/25(日) 17:38:21.10 ID:S7OmeNGW0.net]
>>808
ISO/IEC14882:2017 C.1.1の段落3で
char* p = "abc"; // valid in C, invalid in C++
となっているので、C++ではコンパイルが通ってはいけない

なぜ通ることがあるのかというと、
JIS X3014:2003 D.4で
定値文字列からの暗黙変換 文字列リテラルに対し,定値から非定値へ暗黙変換することは,推奨しない(4.2参照)。
となっており、C++03に従う限りコンパイルは通ることになっていた名残だ

845 名前:デフォルトの名無しさん mailto:sage [2018/03/25(日) 17:59:44.09 ID:oI54xnZZ0.net]
するなと言われてもスーパーセットなんだからC言語の記法がどこまで通じるかは重大な問題だと思う

846 名前:デフォルトの名無しさん mailto:sage [2018/03/25(日) 18:24:54.69 ID:S7OmeNGW0.net]


847 名前:O「それは間違い」なんだが
本音ではそのとおり
[]
[ここ壊れてます]

848 名前:はちみつ餃子 mailto:sage [2018/03/25(日) 18:36:39.65 ID:vqcfoPV60.net]
>>821
スーパーセットにするというよりは、
つかず離れずというポジションかなぁ。
C++ が先にやったのを C で取り入れたことも有るし。



849 名前:デフォルトの名無しさん mailto:sage [2018/03/25(日) 18:55:57.82 ID:HW+VfLnzM.net]
可変長配列とか名前付きの構造体初期化とかc++に取り込まれたんだっけ?
スーパーセットは20年前にとっくに終わったんじゃないかと。

すでに導入されてたらスマソ

850 名前:はちみつ餃子 mailto:sage [2018/03/26(月) 05:22:15.91 ID:S9VCdiyC0.net]
>>824
たぶん入ってないな。

可変長配列 (VLA) って確か C でもオプショナルに格下げされてただろ。 (C11 から)
C++ のイニシャライザはだいぶん複雑になっちゃったから辻褄の合うようにするの大変だろうし、
もうやらないんじゃないかな。

851 名前:デフォルトの名無しさん mailto:sage [2018/03/26(月) 11:36:03.37 ID:pTR+m2Zc0.net]
実用レベルではほぼスーパーセットといっても差し支えない

852 名前:デフォルトの名無しさん [2018/03/26(月) 11:51:36.03 .net]
実用レベルではCがC++のサブセットだし🙄

853 名前:デフォルトの名無しさん mailto:sage [2018/03/26(月) 12:28:17.38 ID:tDSLT7/Xd.net]
実用レベル:=C++にも存在する機能に制限されたC

854 名前:デフォルトの名無しさん mailto:sage [2018/03/26(月) 22:04:18.63 ID:cCKTbT1E0.net]
C11の_GenericとかそれCで敢えてやる必要あるの?って思う

855 名前:デフォルトの名無しさん mailto:sage [2018/03/26(月) 23:52:36.66 ID:TogAHTIh0.net]
微妙に使い辛い機能だし分からんでもないけど、本当の名前がちゃんと見えてるのはちょっと安心感

856 名前:デフォルトの名無しさん mailto:sage [2018/03/26(月) 23:58:29.09 ID:bouVP8Z10.net]
>>829
スイッチで選択するのをスマートにした感じやな。
イマイチ〜〜。
テンプレート一個書いて複数にジェネレートさせる方が好み。

857 名前:デフォルトの名無しさん mailto:sage [2018/03/27(火) 01:36:13.83 ID:tW2Kdf3t0.net]
あるクラスAのラッパークラスWで
A&を受け取る場合はWの全てのメソッドが使えて
const A&を受け取る場合はWのconstメソッドだけが使えるように制限する設計って
ありましたっけ?

858 名前:デフォルトの名無しさん mailto:sage [2018/03/27(火) 01:42:41.92 ID:6oSpwfuc0.net]
おーばーらいど。



859 名前:デフォルトの名無しさん mailto:sage [2018/03/27(火) 06:31:21.75 ID:m3riabwu0.net]
あとは operator -> でポインタ返すやり方とかだな

860 名前:デフォルトの名無しさん [2018/03/27(火) 06:53:48.55 .net]
>>832
制限っていうのは、コンパイルエラーにしたいの?

861 名前:デフォルトの名無しさん mailto:sage [2018/03/27(火) 07:01:18.53 ID:tW2Kdf3t0.net]
A a0;
const A a1;
W w0(a0);//OK
W w1(a1);//NG
const W w2(a1);//OK
const W w3(a0);//OK
で、Wの非constメソッドには必ずconstメソッドが対応して存在している
みたいな

862 名前:デフォルトの名無しさん mailto:sage [2018/03/27(火) 07:12:14.69 ID:6oSpwfuc0.net]
設計がダサい気がするけど、何に使うんだろう。

863 名前:デフォルトの名無しさん [2018/03/27(火) 07:35:02.82 .net]
>>836
NGっていうのは、コンパイルエラーにしたいの?

864 名前:デフォルトの名無しさん mailto:sage [2018/03/27(火) 07:36:16.27 ID:tW2Kdf3t0.net]
>>838
そうですね

865 名前:デフォルトの名無しさん mailto:sage [2018/03/27(火) 07:40:26.10 ID:ofLFYE4b0.net]
>>837
明確な欠点を指摘出来ない時に使う言葉だな
「ダサい」

866 名前:デフォルトの名無しさん mailto:sage [2018/03/27(火) 11:34:17.37 ID:bA2HN2rY0.net]
クラスを
W
MutableW (変更可能なW)

と分けるのがよく使われる現実的な解だと思う
MutableW は W の派生型として実装すると楽

>>836
>で、Wの非constメソッドには必ずconstメソッドが対応して存在している

この部分は意味不明なので聞かなかったことにしておく

867 名前:デフォルトの名無しさん mailto:sage [2018/03/27(火) 12:08:25.74 ID:tW2Kdf3t0.net]
なるほど、ありがとうございます

868 名前:はちみつ餃子 mailto:sage [2018/03/28(水) 16:37:44.82 ID:jJD3k2j80.net]
>>832
テンプレートにしておいて SFINAE で分岐するという方法はとれるが……。



869 名前:デフォルトの名無しさん mailto:sage [2018/03/28(水) 18:32:49.43 ID:rzqMRle+a.net]
C言語ってこんなので就職できるらしい…

【企業】「”C言語…?どこかで見た”程度でOK」 名古

870 名前:屋のアテック、求人広告が話題に エンジニアの人材不足、面白求人でカバーできる?
https://asahi.5ch.net/test/read.cgi/newsplus/1522229305/

本物のC++プログラマーを募集してる某社とはえらい違いだな
[]
[ここ壊れてます]

871 名前:デフォルトの名無しさん mailto:sage [2018/03/28(水) 20:11:10.89 ID:nsQQ2hCk0.net]
永久にPHP弄らせる要員としては十分

872 名前:デフォルトの名無しさん [2018/03/28(水) 20:50:12.70 .net]
>>844
言語ヲタなんてプロジェクトに一人いれば十分だし

兵隊は言語の知識よりコミュニケーション能力、報連相、Excel方眼紙スキルが大事よ

873 名前:デフォルトの名無しさん mailto:sage [2018/03/28(水) 20:55:08.40 ID:NO5LUaew0.net]
上司を黙らせるスキルでしょ
盛らないでね

874 名前:デフォルトの名無しさん mailto:sage [2018/03/28(水) 22:09:32.87 ID:nsQQ2hCk0.net]
会社員なのだから上司が納得することだけが重要

875 名前:デフォルトの名無しさん [2018/03/28(水) 22:29:42.33 .net]
上司なんか関係ないやろ

お客さんを味方に付けることや

876 名前:デフォルトの名無しさん mailto:sage [2018/03/28(水) 22:33:35.60 ID:fYzIlbdt0.net]
関係あるだろ

877 名前:デフォルトの名無しさん [2018/03/28(水) 22:46:49.55 ID:2H+8IznE0.net]
上司も客も関係無いよバカども
プログラミングの話だバカども

878 名前:はちみつ餃子 mailto:sage [2018/03/28(水) 23:56:58.42 ID:jJD3k2j80.net]
マ板でやれ



879 名前:デフォルトの名無しさん mailto:sage [2018/03/29(木) 00:40:46.75 ID:zCjdEvGWM.net]
visualstudio2017 Win32アプリケーションでSQLiteを使いたいのですが
Nugetにそれらしきものが合ったのでインストールしようとしたのですが以下のエラーでインストールできません。
https://www.nuget.org/packages/SQLite/

パッケージ 'SQLite 3.13.0' をインストールできませんでした。このパッケージを 'native,Version=v0.0' を対象とするプロジェクトにインストールしようとしていますが、
そのフレームワークと互換性があるアセンブリ参照またはコンテンツ ファイルがパッケージに含まれていません。

どうすればよいのでしょうか。

880 名前:デフォルトの名無しさん [2018/03/29(木) 00:42:57.97 ID:+dX3Weor0.net]
CoAppのタイムスタンプ調べてみて。
NuGetは捨てろ。

881 名前:デフォルトの名無しさん [2018/03/29(木) 00:48:50.94 ID:+dX3Weor0.net]
代わりに何を使うか。
VCPKG。
ただし、MSは三年後にVCPKGも捨てているだろう。
逆に我々がVSを捨てる時期に来ている。

882 名前:デフォルトの名無しさん [2018/03/29(木) 00:53:15.59 ID:+dX3Weor0.net]
MSの方針としてC++を捨ててC#に移行させるというのがあって、C++ユーザーはあの手この手で改宗を迫られる。
もはやVSでC++は苦行。
というか、WindowsでC++が苦行。

883 名前:デフォルトの名無しさん [2018/03/29(木) 00:55:08.86 ID:+dX3Weor0.net]
C++を捨ててC#に移行するか、Windowsを捨ててOSXかLinuxに移行するか。
二択。
WindowsではC#が正解。
なぜならMSがそれを望んでいるから。

884 名前:デフォルトの名無しさん mailto:sage [2018/03/29(木) 01:05:50.70 ID:xx4XvERn0.net]
C++のチームも頑張って更新してるけどな
IDEとコンパイラは十分なのに
・パッケージマネージャーがクソ
・再起動しないとPATHが更新されない
・VSのプロジェクトが用意されていないとビルドが面倒
と環境が整備されてなさすぎる

885 名前:デフォルトの名無しさん mailto:sage [2018/03/29(木) 01:09:04.86 ID:y/yCqDtn0.net]
C# + C++/CLI + C++
という選択肢

886 名前:デフォルトの名無しさん [2018/03/29(木) 01:14:03.03 ID:+dX3Weor0.net]
我々が間違っている公算も高い。
我々はC++を使いこなせる。
だから、C++なら簡単にできるのになぜそうしない?と思ってしまうが、これから学ぶならC#のほうが簡単だろう。
MSがC#を推すのは正しいのかもしれない。

887 名前:デフォルトの名無しさん mailto:sage [2018/03/29(木) 01:20:39.82 ID:xx4XvERn0.net]
C#はビジネス用だから
より早く大量にコードを生産することを目的としているからC++とは用途が違う

888 名前:デフォルトの名無しさん mailto:sage [2018/03/29(木) 02:12:12.07 ID:Hc4kPWXM0.net]
Android でも iPhone でも Windows でも使える共通部分のコードは c++ で、
ってのを C# に変えたいのかもしれんが
別段 c++ で不自由ないしなあ…

てか c# って .Net のイメージ強すぎて単体で使える気がまるでしない



889 名前:デフォルトの名無しさん mailto:sage [2018/03/29(木) 03:27:22.16 ID:T1PPEJjr0.net]
未だにproperty実装出来ていないC++標準仕様が異常なんだぜ
そりゃMSも堪忍の尾が切れるってもんだぜ

890 名前:デフォルトの名無しさん mailto:sage [2018/03/29(木) 04:16:13.07 ID:Ng8O1HeK0.net]
ら、ライブラリで実装できるから・・・。
ちなみに、プロパティっぽい提案は過去出てるが、全くテーブルに乗らない。

891 名前:デフォルトの名無しさん mailto:sage [2018/03/29(木) 04:45:16.84 ID:xx4XvERn0.net]
誰もプロパティを欲していないのである

892 名前:デフォルトの名無しさん mailto:sage [2018/03/29(木) 06:44:05.72 ID:izMMXIg60.net]
俺も欲しくない
コスト予測し辛杉デフ

893 名前:デフォルトの名無しさん mailto:sage [2018/03/29(木) 07:38:47.09 ID:LRHKAKcy0.net]
C#はいい言語だよ
Linq便利だし

ただC++とは用途が違うってだけ

894 名前:デフォルトの名無しさん mailto:sage [2018/03/29(木) 08:06:33.99 ID:qluMmKIH0.net]
何度聞いてもプロパティが欲しいという思いが沸かないんだが

895 名前:デフォルトの名無しさん mailto:sage [2018/03/29(木) 08:10:21.70 ID:FDAIDKLE0.net]
ウィンドーズホンでネイティブC++とC++/CXの間を取り持つwrapperを書くのに使う
Wrapperを書くのに便利

896 名前:デフォルトの名無しさん mailto:sage [2018/03/29(木) 10:37:15.71 ID:+tUOh99Na.net]
プロパティが使えたらMFCのような糞環境でUpdateDataを使わなくてよくなる

プロパティに代入で表示が変わり
プロパティからそのまま値が取り出せる

897 名前:デフォルトの名無しさん [2018/03/29(木) 10:39:27.42 ID:+dX3Weor0.net]
しかしVisual Studioは何だってUTF-8で保存されるのをそんなに嫌うんだろうか。
あの手この手でUTF-8で保存するのを妨害してくるけど。

898 名前:デフォルトの名無しさん [2018/03/29(木) 10:40:42.80 ID:+dX3Weor0.net]
VSで開発してLinuxに移植されるのを嫌がってるんだろうかね。
その割にはgdbと接続できるようにしてるし。



899 名前:デフォルトの名無しさん mailto:sage [2018/03/29(木) 10:47:23.77 ID:Hc4kPWXM0.net]
>>870
ナイナイ
今だって setFoo() だの getFoo() だの実装すりゃできるけど初学者以外はやらないだろ?
実装するにも使うにも効率が悪いからね。

900 名前:デフォルトの名無しさん mailto:sage [2018/03/29(木) 10:47:32.92 ID:+dsdqxPO0.net]
>>870
それはsetter/getterではできないことなんだな?

901 名前:デフォルトの名無しさん [2018/03/29(木) 10:57:10.36 ID:HNpF58Nud.net]
a.Hoge+=100;
みたいな事をできて便利だなと思うことはあるけど無けりゃないでいいわレベル

902 名前:デフォルトの名無しさん mailto:sage [2018/03/29(木) 11:06:30.37 ID:q+sj+Afe0.net]
プロパティはメソッドともフィールドとも区別できるメタデータとしての活用が唯一の動機なんだが
結局のところ実行時の型システムまで整備しないととただの構文糖だしなあ

903 名前:デフォルトの名無しさん mailto:sage [2018/03/29(木) 11:06:41.49 ID:+tUOh99Na.net]
>>874
A.Width+=20;

A.setWidth(A.getWidth()+20);

どっちがいい?;

904 名前:デフォルトの名無しさん mailto:sage [2018/03/29(木) 11:10:04.25 ID:jtsbgEO5a.net]
>>877
後者の方が好きだな

905 名前:デフォルトの名無しさん mailto:sage [2018/03/29(木) 11:14:39.59 ID:+tUOh99Na.net]
a.value++とかif(a.Width==100)とか
普通に書けるものをわざわざgetter setter書きたいんだな
変ってる

906 名前:デフォルトの名無しさん mailto:sage [2018/03/29(木) 11:32:58.49 ID:Hc4kPWXM0.net]
UI とのバインディングを失笑されたら
シンタックスシュガーでこんなに楽にかける!と主張し始めたよw
そりゃ楽にかけて便利だよな。
そのためのものだもの。そこは同意する

907 名前:デフォルトの名無しさん mailto:sage [2018/03/29(木) 11:35:30.24 ID:+tUOh99Na.net]
GUIだけじゃなくて他にも使えるというか
他がメイン

908 名前:デフォルトの名無しさん mailto:sage [2018/03/29(木) 12:12:32.14 ID:xx4XvERn0.net]
>>879
そういう風にお手軽にメンバを書き換えるのは事故のもとなのでやめましょうってことでめんどくさくしたのに
戦争を知らない世代みたいな
現状でもa.value()++とかif(a.Width()==100)でできるしな
これまでのコードとの一貫性を破壊してなおかつ年代物のコンパイラに更に複雑なパースをさせて得られるものがちょっと括弧を省略するだけとは



909 名前:デフォルトの名無しさん mailto:sage [2018/03/29(木) 12:14:06.74 ID:mREgEFijd.net]
プロパティのメリットは最初publicで適当に実装しといても後からgetter/setter付きのprivateに変えれる所じゃない?

910 名前:デフォルトの名無しさん mailto:sage [2018/03/29(木) 12:18:25.09 ID:xx4XvERn0.net]
変数がない状態でもテストに通るように作るべきだからpublicで変数を持たせる機会が一瞬もない






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

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

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