次スレを立てる時は本文の1行目に以下を追加して下さい。
!extend:on:vvvvv:1000:512
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part137
https://mevius.5ch.net/test/read.cgi/tech/1531558382/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.103【環境依存OK】
https://mevius.5ch.net/test/read.cgi/tech/1530384293/
■長いソースを貼るときはここへ。■
http://codepad.org/
https://ideone.com/
[C++ FAQ]
https://isocpp.org/wiki/faq/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)
----- テンプレ ここまで -----
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
探検
C++相談室 part137
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん (ワッチョイ 12c3-4saf)
2018/08/27(月) 16:02:00.94ID:vY3QDx2y0969デフォルトの名無しさん (ワッチョイ c0f2-vBoO)
2018/10/05(金) 22:48:31.92ID:qdFd1sVz0 あの複雑怪奇な名前解決ルールを受け入れているC++使いからしてみれば、変数が
ローカルかグローバルかなんてわざわざ目印付けるほどのことじゃないのかも
ローカルかグローバルかなんてわざわざ目印付けるほどのことじゃないのかも
970デフォルトの名無しさん (ワッチョイ 26bd-PkCJ)
2018/10/05(金) 22:49:02.31ID:SgefIaql0 パブロフの犬カヨ
グローバル変数の先頭に「g_」を付け続けると
そのうち先頭に「g_」とつけただけで
グローバル変数の先頭に「g_」を付け続けると
そのうち先頭に「g_」とつけただけで
971デフォルトの名無しさん (ワッチョイ 26bd-PkCJ)
2018/10/05(金) 23:02:57.02ID:SgefIaql0 しかしいかにクラスFooに関連するオブジェクトは全部Fooのコンストラクタかsetterで渡すか一時オブジェク
トとしてメソッドの引数として都度渡すのがオブジェクト指向設計としての理想とはいえ実際には対数表のカ
スタマイズ版みたいにかなり普遍的な意味を持つテーブルTが存在する前提でいっぱいクラスを定義したい
ときもあるわけでそういうときはテーブルTをグローバル変数とした方がスマートに書けるTがこの世に1つし
かないのにいちいちインスタンス毎にTへのポインタを持たせるのですかみたいな、
で、そうするとグローバルであることの目立つ標識が欲しいところだがオリジナルの規則を考えるのもアホら
しいので使用人口が多そうな「g_」を使う
トとしてメソッドの引数として都度渡すのがオブジェクト指向設計としての理想とはいえ実際には対数表のカ
スタマイズ版みたいにかなり普遍的な意味を持つテーブルTが存在する前提でいっぱいクラスを定義したい
ときもあるわけでそういうときはテーブルTをグローバル変数とした方がスマートに書けるTがこの世に1つし
かないのにいちいちインスタンス毎にTへのポインタを持たせるのですかみたいな、
で、そうするとグローバルであることの目立つ標識が欲しいところだがオリジナルの規則を考えるのもアホら
しいので使用人口が多そうな「g_」を使う
972デフォルトの名無しさん (ワッチョイ 8ad7-vBoO)
2018/10/05(金) 23:05:20.25ID:cQzHZ22n0 60億人がシステムハンガリアンの良さを発見できなかった
そういうことだ
そういうことだ
973デフォルトの名無しさん (ワッチョイ 8ad7-vBoO)
2018/10/05(金) 23:06:16.17ID:cQzHZ22n0 せっかく自動化したものを蒸し返す愚行
機械に使われる人間に自ら志願するようなことでしかない
機械に使われる人間に自ら志願するようなことでしかない
974デフォルトの名無しさん (バッミングク MMc2-Ww/X)
2018/10/05(金) 23:14:36.32ID:MM5jcfpFM ハンガリアン記法が滅亡した時にgとかsとかのスコーププレフィックスも一緒に絶滅したと思うの。
975デフォルトの名無しさん (ワッチョイ 26bd-PkCJ)
2018/10/05(金) 23:19:28.57ID:SgefIaql0 もうそういうのは見飽きたからハンガリアン無差別否定派とアプリケーションハンガリアン推進派が頃しあって消滅してくれたらいいのに…
976デフォルトの名無しさん (ワッチョイ 6ee3-BkfR)
2018/10/05(金) 23:22:01.95ID:4ThlZrTR0 「ハンガリアン記法を使うと、コードの断片からでも何かを発見できる。」
977デフォルトの名無しさん (ワッチョイ 6ee3-BkfR)
2018/10/05(金) 23:25:38.27ID:4ThlZrTR0 C#では、メンバ変数 aaa をアクセスする時には、必ず、
「this.aaa」
とするらしい。これは、C++で、ハンガリアン記法を使った場合の、
「m_aaa」
に該当する。this. と m_ では、後者のほうが短く便利。
m_ も、this. も付けない場合、たとえば、コンストラクタで
同じ意味の仮引数を使いたい場合に、何らかの別の名前を
考えなければならなくなる。
「this.aaa」
とするらしい。これは、C++で、ハンガリアン記法を使った場合の、
「m_aaa」
に該当する。this. と m_ では、後者のほうが短く便利。
m_ も、this. も付けない場合、たとえば、コンストラクタで
同じ意味の仮引数を使いたい場合に、何らかの別の名前を
考えなければならなくなる。
978デフォルトの名無しさん (ワッチョイ 0104-SWBM)
2018/10/05(金) 23:26:32.77ID:eEmdo3hB0 サイズ変更してキャパシティ変更になったらデリートかかる可能性が高いのでそういうことを一応管理しないといけない。
979デフォルトの名無しさん (ワッチョイ 26bd-PkCJ)
2018/10/05(金) 23:28:00.34ID:SgefIaql0 >C#では、メンバ変数 aaa をアクセスする時には、必ず、
>「this.aaa」
>とするらしい。
mjd?
いつから?次の元号から??
>「this.aaa」
>とするらしい。
mjd?
いつから?次の元号から??
980デフォルトの名無しさん (ワッチョイ 965b-zn+7)
2018/10/05(金) 23:29:24.93ID:3VgmxBOW0 一般的に言われているシステムハンガリアンのデメリットはg、s、mには当てはまらない。
iとかdwとかlpszみたいな糞接頭辞とは分けて考えたほうがいいと思うよ。
iとかdwとかlpszみたいな糞接頭辞とは分けて考えたほうがいいと思うよ。
981デフォルトの名無しさん (ワッチョイ 6ee3-BkfR)
2018/10/05(金) 23:31:13.38ID:4ThlZrTR0 個人的には、以下のような命名規則は大いに役立っており、
コード全体を見ずにコードの断片を見るだけで、何も考えずに
コーディングが出来ることが多くなる。おかげでずいぶん楽になった。
char *pszText;
char szText[256];
CString strText;
char **ppszText;
「sz」は、0終端文字列。s = string、z = zero。
p は、ポインタ、str は、CString。
pp は、ポインタへのポインタ。
コード全体を見ずにコードの断片を見るだけで、何も考えずに
コーディングが出来ることが多くなる。おかげでずいぶん楽になった。
char *pszText;
char szText[256];
CString strText;
char **ppszText;
「sz」は、0終端文字列。s = string、z = zero。
p は、ポインタ、str は、CString。
pp は、ポインタへのポインタ。
982デフォルトの名無しさん (ワッチョイ df7f-vBoO)
2018/10/05(金) 23:36:17.35ID:zW6/2yxd0 m_がついててもそれがメンバである保証が何もないからなあ。無駄なだけ
983デフォルトの名無しさん (ワッチョイ 6ee3-BkfR)
2018/10/05(金) 23:39:57.45ID:4ThlZrTR0 >>980
個人的には、i や dw は滅多に使わない。
lpszは、自分では使わない。pszは使う。
なぜなら、lpsz の「l」 は、16BIT時代から32BIT 時代へ移行したときの産物だから、
今は時代遅れなので。
ところで、dwRead と書くと、宣言を見返さなくても、読み込みバイト数を表す DWORD 値だと
分かって便利。dwWrite だと、その書き込み版となる。変数名が規則変化するのでとっても便利。
たとえば、「text」という変数名だと、CString 型なのか、0終端文字列なのか、
0終端が付いてないような特殊な文字列なのかが分からない。
ところが、ハンガリアン記法を使うとそれらが明確に区別できる。
0終端文字列を配列で持っているのか、それとも、そのアドレスをポインタで
持っているのかも、sz か、psz かで区別できる。
このことはバグの少ないコーディングにとても役立つ、。
頭を使わなくても機械的にコーディングできてしまうことが多くなるから。
個人的には、i や dw は滅多に使わない。
lpszは、自分では使わない。pszは使う。
なぜなら、lpsz の「l」 は、16BIT時代から32BIT 時代へ移行したときの産物だから、
今は時代遅れなので。
ところで、dwRead と書くと、宣言を見返さなくても、読み込みバイト数を表す DWORD 値だと
分かって便利。dwWrite だと、その書き込み版となる。変数名が規則変化するのでとっても便利。
たとえば、「text」という変数名だと、CString 型なのか、0終端文字列なのか、
0終端が付いてないような特殊な文字列なのかが分からない。
ところが、ハンガリアン記法を使うとそれらが明確に区別できる。
0終端文字列を配列で持っているのか、それとも、そのアドレスをポインタで
持っているのかも、sz か、psz かで区別できる。
このことはバグの少ないコーディングにとても役立つ、。
頭を使わなくても機械的にコーディングできてしまうことが多くなるから。
984デフォルトの名無しさん (ワッチョイ 26bd-PkCJ)
2018/10/05(金) 23:46:52.35ID:SgefIaql0 命名のプレフィックスに関する個人的な熱い想いはカプセルの内側に隠蔽すると良い
そういう意味で「m_」は比較的どうでも良い
そういう意味で「m_」は比較的どうでも良い
985デフォルトの名無しさん (ワッチョイ 965b-zn+7)
2018/10/05(金) 23:50:11.62ID:3VgmxBOW0986デフォルトの名無しさん (ワッチョイ d980-A6IM)
2018/10/05(金) 23:51:01.17ID:elz6X2140 こういう話だけは食い付きがいい
さすがドカタ
さすがドカタ
987デフォルトの名無しさん (ワッチョイ df7f-vBoO)
2018/10/05(金) 23:52:25.87ID:zW6/2yxd0 そうだよ。だから最低限にしないといけない
無駄なものをつけるのはいらんバグを増やすだけで悪
無駄なものをつけるのはいらんバグを増やすだけで悪
988デフォルトの名無しさん (ワッチョイ 26bd-PkCJ)
2018/10/05(金) 23:54:14.41ID:SgefIaql0 個人的にはCのライブラリ関数名に「g_」がついていないのを遺憾に思う
989デフォルトの名無しさん (スップ Sd02-YLcB)
2018/10/05(金) 23:54:47.79ID:ZMQnisBBd 今時ハンガリアン使うアホがいたとは驚きなんだがw
もう絶滅したと思ってた
もう絶滅したと思ってた
990デフォルトの名無しさん (ワッチョイ 6ee3-BkfR)
2018/10/06(土) 00:00:43.80ID:JjdhAE/r0991さまよえる蟻人間 ◆T6xkBnTXz7B0 (スププ Sd70-hQIv)
2018/10/06(土) 00:06:22.53ID:SJezKYMvd OOP == オブジェクト指向プログラミング
TMP == テンプレート/temporary
TMP == テンプレート/temporary
992デフォルトの名無しさん (ワッチョイ 6ee3-BkfR)
2018/10/06(土) 00:07:22.53ID:JjdhAE/r0 何で相性が悪いのかが分からぬ。
993デフォルトの名無しさん (ワッチョイ 26bd-PkCJ)
2018/10/06(土) 00:11:20.65ID:d9G2ZJ030 いかにハンガリアン否定派といえども
いざ実際ハンガリアンで書かれた変数名を見たら体が反応してしまうということなんだろJK
鍛錬が足りん
いざ実際ハンガリアンで書かれた変数名を見たら体が反応してしまうということなんだろJK
鍛錬が足りん
994デフォルトの名無しさん (ワッチョイ 6ee3-BkfR)
2018/10/06(土) 00:14:20.26ID:JjdhAE/r0 ずっと前に、ハンガリアン記法で書かれた比較的大きなソース・コードを見て
とても分かりやすかったので自分もそれに習っただけなんだよね。
とても分かりやすかったので自分もそれに習っただけなんだよね。
995デフォルトの名無しさん (ワッチョイ ee9f-vBoO)
2018/10/06(土) 00:23:46.06ID:PyrakEMK0 実際みんなが叩いてるから叩いてるってやつはいるだろうな
俺も別に悪くはないと思うよ
自分から進んで使おうとは思わないが
俺も別に悪くはないと思うよ
自分から進んで使おうとは思わないが
996デフォルトの名無しさん (ワッチョイ 4634-C4cH)
2018/10/06(土) 00:28:00.98ID:GMmUDkcN0 型が殖える度に変数名のプレフィックスがどんどんどん殖えていくなんてコーダー側からしたら不毛なだけ
いざ型名変えたいと思っても後ろを振り向くのが怖くなる
いざ型名変えたいと思っても後ろを振り向くのが怖くなる
997デフォルトの名無しさん (ワッチョイ 6ee3-BkfR)
2018/10/06(土) 00:33:38.42ID:JjdhAE/r0 でも、BOOL 値の変数の先頭に b を付けたりすると、ミスを発見するのに大いに役立つ
事があるよ。
事があるよ。
998デフォルトの名無しさん (ワッチョイ 4634-C4cH)
2018/10/06(土) 00:36:41.02ID:GMmUDkcN0 読む側にとってはな
書く側は細心の注意を払わないといけない
簡単に後戻りできないからな
メンテ効率最悪なんだよ
書く側は細心の注意を払わないといけない
簡単に後戻りできないからな
メンテ効率最悪なんだよ
999デフォルトの名無しさん (ワッチョイ 965b-zn+7)
2018/10/06(土) 00:38:54.48ID:CdYUXXMG0 次はpart139でいいのか?
1000デフォルトの名無しさん (ワッチョイ 0104-SWBM)
2018/10/06(土) 00:42:40.48ID:tQclXtq/0 ハンガリアンは、集団にその命名方法が周知されていないといけないので、周知するところから始めないといけない。
周知できればコスト低減できるが、それまでのコストをどうみつもる?
周知できればコスト低減できるが、それまでのコストをどうみつもる?
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 39日 8時間 40分 40秒
新しいスレッドを立ててください。
life time: 39日 8時間 40分 40秒
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★10 [ぐれ★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★9 [ぐれ★]
- トランプ氏「台湾侵攻すれば北京爆撃」“過激予告発言”報道がXで再燃「高市氏の1億倍やばい」 [七波羅探題★]
- 「母の部屋に安倍氏が表紙の機関誌が」「(安倍氏が被害者なのは)不思議に思いませんでした」山上被告の妹が証言 ★2 [おっさん友の会★]
- 【ペルソナ・ノン・グラータ】中国総領事の早期国外退去を首相に要請へ 自民・保守系グループ「日本の尊厳と国益を護(まも)る会」 [ぐれ★]
- 【Jリーグ】モンテディオ山形 新スタジアム会員、募集停止 資金計画を再調整、年明け再開予定 [鉄チーズ烏★]
- 安倍晋三「円が300円になったらトヨタ車が3分の1で売れる。日本への旅費も3分の1になる。そうすればあっという間に経済は回復していく」 [177178129]
- 中国報道、高市首相を「毒苗」と中傷😡 [399259198]
- 【高市悲報】🇨🇳中国「日本への報復措置? 他にいくらでも方法はある。 まだまだやめないよ」 😨😱 [485983549]
- 【悲報】日本、パンダ0にwwwwwwwwwwww高市さんありがとう🐼 [271912485]
- 高市早苗、約1ヶ月でドル円・10円円安を達成 [256556981]
- 無水カレー作るんやが、何入れたら美味しい?
