No.1ベストアンサー
- 回答日時:
細かい所では
・型・クラスが増えると意味をなさない
・知らない人には暗号のように見える
ぐらいでしょうか。
ちなみにVS.NETよりMSはハンガリアン記法を止めました。恐らく前者が原因でしょう。個人的にはC/C++で書くならポインタのpはほぼ必須だと思いますけどね^^;
この回答への補足
Resが大変遅くなり、申し訳ございません。
> ・型・クラスが増えると意味をなさない
当方、VB (6.0以前)、VBAしか使用経験がないため、この点を失念しておりました。
VB6.0製のAPでは、再利用性や部品化を意識した、「出来のよい」(と思われる) プロジェクトでも、クラスモジュールの比率はそんなに高くないのです。
コメントありがとうございます。
言われてみれば、仰る通りで、別に難しい理屈ではありませんでしたね。
VB (6.0以前) 限定なら、デメリットよりメリットのほうがかなり大きいのですが。
(フォームのコントロールに txt,lbl,cbo,cmd といったプリフィックスを付けるだけで、可読性、開発効率の向上という恩恵が得られるので)
この種の議論は、ともすれば不毛な感情論、宗教論争に発展しがちですが、全否定、全肯定に陥らず、利点/欠点の両方を客観的に受け入れて、利点をできるだけ活かすのが望ましいのだと思います。
ありがとうございました。
No.2
- 回答日時:
ハンガリアン記法が廃れる理由は、質問者さんや#1の方の回答の通りだと思います。
以下は補足です。
C++では詳細な型はもちろん、算術型・ポインタ型・関数型等の区別も、意味的にはかなり曖昧になっています。
というのも、ポインタと同じように扱える型には、生のポインタもあれば、std::auto_ptrやboost::shared_ptrのようなスマートポインタもあり、イテレータもあるわけです。算術型も関数形式のキャストができますし、関数型とファンクタも似たようなものです。
特に、テンプレート内ではまったく別の型が同じものとして扱われますから、あえて区別するのは自由度を下げるだけであまりメリットはありません。
コメントありがとうございます。
C++やC#、Java等では、VB (6.0以前に限定) のようには上手くいかないようですね。
(VBでもすべてのカスタムコンポーネントにプリフィックスを割り当てるのは不可能に近い?)
個人的には、全否定するのではなく、利点になる部分のみを活かすことは不可能ではないと思っています。
(例 : 文字列と数値の区別、各種コントロール種別の区別)
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・【お題】絵本のタイトル
- ・【大喜利】世界最古のコンビニについて知ってる事を教えてください【投稿~10/10(木)】
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
セグメントエラー
-
C言語のポインタに直接アドレス...
-
Run-Time Check Failure #3とい...
-
Wordでのリンク方法(Ctrlキー...
-
LPSTR型の初期化について
-
init関数の意味
-
基本アルゴリズムの『返す』の...
-
参照型で受け取った引数をポイ...
-
デバイスハンドルとは?
-
VBはCを混乱させる?
-
fopne で失敗する原因
-
戻り値で構造体を返すことは可...
-
ハンドル、アドレス、ポインタ...
-
popenした子プロセスのプロセス...
-
パスからファイル名を抽出
-
CImage GetBitsメソッドについて
-
TCHAR文字列内の検索について
-
C#,C++/CLI,MFCにおけるデータ...
-
VB6でポインタ?
-
_TCHAR、LPCWSTRについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語のポインタに直接アドレス...
-
セグメントエラー
-
init関数の意味
-
fopne で失敗する原因
-
Run-Time Check Failure #3とい...
-
戻り値で構造体を返すことは可...
-
ExcelVBAでのkernel32(64bit)
-
LPSTR型の初期化について
-
参照型で受け取った引数をポイ...
-
C言語でのconstを返す関数
-
ハンドルはポインタか
-
ハンドル、アドレス、ポインタ...
-
PASCALとFARの意味
-
CWnd::EnableWindow()の扱い方
-
ポインタについて
-
デバイスハンドルとは?
-
C言語の文字列?処理 strcpyやl...
-
ポインタのミスでOS壊れるの...
-
C++ vectorのbeginについて
-
基本アルゴリズムの『返す』の...
おすすめ情報