クラス名から始まるC
-
21-09-2019 - |
質問
のMFCは、すべてのクラス名から始まるC.例えば、CFileとCGdiObject.ですから別の場所で使われるか?が正式に命名規約-ガイド株式会社エンパシは、Microsoft社からwindowsることを推奨このスタイル?たえずMFCやしたいその他のプロジェクト?
解決
ビット同様の何かが慣例であるSymbianのC ++で使用されていることます:
Tクラスは、 "値" は、例えばTCHAR、TInt32、TDES
Rクラスはカーネル(または他の)リソースへのハンドルであり、例えばRFILE、RSocket
Mクラスは(なし関数の実装とミックスインとして解釈)インターフェースを含むミックスインです。ガイドラインでは、多重継承はほとんど1非Mクラスに関与させるべきであるということです。
Cクラスは、他のほとんどすべてであり、資源の取り扱いを助けるために、その中にいくつかのものを持っているにCBaseから派生します。
HBufCは、Symbianフォーラムで混乱した記事を生成するために主に存在し、その非常に自身の接頭辞を持つことは始まったばかりです。 H「は?ハァッ」の略で、または多分「ホー、サンザシ!あなたは何のSTLを持っていません!」 ; - )
これはアプリハンガリー語表記ではなく、システムハンガリー語表記の精神に近いです。プレフィックスは、あなたがそうでなければ分からないでしょうあなたが文書で調べることができ、クラス、が、約あなたの何かを伝えます。 のプログラミングで何かを命名の全体のポイントは、そのようなヒントやリマインダーを提供することであり、そうでない場合はあなただけなど、「Class002」、「Class001」あなたのクラスを呼び出すと思います。
システムハンガリーはちょうど、特に種類がいずれか完全にテンプレートパラメータによって隠さ絶えずか、他に繰り返される傾向にあるC ++のような言語では、あなたのIMO非常に興奮するものではありません変数のタイプを伝えます。種類に名前を付けるときにその類縁体は、I.アゲインですべてのインターフェイスに名前を付けるのJavaの練習は、私は非常にこの興奮(および標準のJavaライブラリを行うことでもない)されませんされていますが、すべてのクラスのためのインタフェースを定義するつもりなら、実際には非テストの状況における多型のために使用されるインタフェースに加えて、その後、次の2つを区別するために、いくつかの方法が必要になります。
他のヒント
それは悪です。何もなく、抽象化されたもののためにハンガリー語表記法を使用しないでください。
たとえば、btnSubmit
は(ボタンの横にあるラベルの伴うlblSubmit
を持っているでしょう)提出という名前のボタンを記述しても大丈夫です。
が、クラスのためのCMyClass
とカウントが余分に無駄なタイピングにプログラマーだけリードを助けないという名前の符号なし整数のためuiCount
のようなもの。
は、おそらくそれを使用する最後のものの一つでした。
これは、通常はC ++の慣習(そしておそらく他のいくつかの言語)で、それゆえ、それは言語がCOM、その後.NETを通じて、より多くの相互運用が可能になったとして好意から落ち始めています。
あなたはまだかなり多くの場合、それのいとこ、インタフェースのための「I」の接頭辞を参照してください。私はいつもそれが「C」が死んだとき、「私は」生き残ったことは興味深いが、インターフェイスは、COM相互運用性にそれほど頻繁に使用されたので、おそらくしていることがわかってきました。
私は、Borlandのコンパイラは、クラス名が「T」で始まったライブラリで来ていた覚えています。おそらく、 "タイプ" のために:)
命名規則年前であっても、クラスのグループ化のクラス、種類を特定する助けに不可欠です。いけないバック忘れるその後、名前空間はありませんでしたなし/利用可能インテリセンス制限されています。 Cはハンガリアン記法の形ですが、確かにMFCによって普及しました。タイプ
の接頭辞として - ボーランドとDelphiはTを使用していました、あなたは一般的にUNIXプラットフォーム用に書かれたソフトウェアで、後者を見つけることができません。私はそれが非常に強くのVisual C ++に励まさ習慣だったと思います。私は、Visual C ++ 6.0は、1クラスウィザードで作成することを任意のクラスに「C」を前に付けるということを覚えています。
私はすべてのご質問にお答えすることはできませんが、私の知る限りでは、それは他のクラスからMFCクラスを区別するだけだ - 。ハンガリアン記法のフォーム
興味深いことに、それは外のMSだけではなく、明らかに論争のですが、内側にものます。
こちらをご参照: http://www.jelovic.com/articles/stupid_naming.htm 長第ています。
の変数のような規則は、あなたがそれらを使用する前に、変数の型を宣言する必要はありませんFortranのような言語のために便利です。私は名前が整数にデフォルト設定の「i」または「J」で始まっていますその変数を思い出すように見える、と「R」や他の文字で始まっ名だ変数が実数(浮動小数点数)の値にデフォルト設定ます。
これ人々はあなたが宣言変数への必要性を行う言語のための同様の使用 - またはクラス定義のために - おそらくそれは実際に重要だっFortranのような言語からの古いコード規則を誤解誰かのちょうど遺物である。
。は、我々は区別クラスは、直接的または間接的にではないクラスからはQObjectから派生していることを命名規則を使用します。あなたはそれがQObjectをから来る信号/スロット、プロパティ、および他のすべてのグッズをサポートしているか否かのクラス名から伝えることができるので、これは便利です。
私たちは、他の多くの命名規則と同様に、仕事でそれを使用する
は、多くのIによって静的メンバのクラス、ポインタに対するp、メンバーのためのM_、S_のためのCを意味し、nは整数のために...ない多くの文書
個人的に私は、変数の全画面表示を見て、すぐに私がしようとロジックを吸収するよう、彼らが何であるかを知ることができるという点で、ハンガリアン記法は、私を助けていることを見つけます。私が見るそれに対するあなたの唯一の引数は、「余分なタイピング」