2009-02-26 6 views
10

公開としてm_varnameを使用し、privateと_variableを持つ同じクラスパブリック変数とプライベート変数の命名規則

+0

私は、このコーディングスタイルに慣れていると私はそれが非常に快適でクリアな見つける新しい作業環境に適応できるように、異なる慣習によって書かれたコードを理解することができるように見つけます: http://www.trinitycore.org/f/topic/6-trinitycore-developing-standards/ – LihO

答えて

10

いくつかの懸念:

  • は、なぜあなたは、パブリック変数を持っていますか?

  • _と__で始まる識別子は、システムライブラリ用に予約されています。実際にはこれはあまり重要ではありませんが、認識するのは良いことです。

これらのことから、どのように見えるかにかかわらず、命名規則を作成することに何も問題はありません。ただ一貫している。

+1

一貫性のヒント。最悪の命名規則を採用することもできますが、一貫性があれば、コードの保守性が向上します。 – Spidey

0

C++で作業していると仮定すると、私の答えはNOです。それは完全に合理的ですが、あなたは本当にその大会に固執すべきです。

しかし、C#などの静的型付き言語では、そのような命名規則はやや冗長であると想定しています。

個人的に私はそれは醜いと思うが、変数がC++でどこから来るのかは明らかではない。そのような甘えが助けになるかもしれない。

2

命名規則に関する限り、誰もが自分の好みを持っています。私は、より多くの人々がクラス内の公的変数を持たないことに同意するだろうと言いたい。

5

C++とJavaの場合も同様です。ハンガリー語表記や接頭辞/接尾辞は必要ありません。キーワード「this」が見つかりました!

あなたは、コンストラクタの初期化リストを使用することができ、この単純な例ではもちろん
class MyClass { 
    private: 
     int value; 

    public: 
     MyClass(int value) { 
      this->value = value; 
     } 
} 

(はず!);)

ので、代わりに任意の厄介な表記は、単に言語の可能性を採用して使用します。メンバー変数の名前を知っていれば、それは完璧であることがわかります。なぜあなたは "_"でそれを難読化しますか?

パブリックメンバーとプライベートメンバーに同じ名前を使用する場合は、これは絶対に間違った考えです!なぜ同じクラスで同じことを表現するには2つのことが必要でしょうか?それをプライベートにして、完全に名前をつけてゲッターとセッターに公開してください。

+0

"this"はC++のポインタです。 –

+0

正しいでしょう! –

2

アンダースコアで始まる名前または二重アンダースコアを含む名前は使用しないでください。これらの名前は、コンパイラと実装用に予約されています。その制限の他に、あなたとあなたのチームが好きな命名規則を使うことができます。個人的には、私は「ハンガリー語」の記法を嫌い、m_something表記も嫌いです。変数の型を変更する必要がある場合は、どこにでも名前が更新される必要があります。それはメンテナンスの頭痛です。

0

多くのC++規約があります。キーは、1つを見つけたり、そして/または1つを適合させることです。それに固執し、一貫性を保つ。あなたがどこかで働いている場合は、多くの慣習を整理してください。そこには非常に多くのものがあり、それぞれが良い議論を持っていますが、彼らは互いに矛盾することができます(合同ストライク戦闘機、ベル研究所、Mozillaなど)

プロジェクトのさまざまな部分少なくとも、各ファイルをそれ自身の中で一貫性を持たせ、.cppファイルと.hファイルは互いに一致させる必要があります。

私はより良いあなたが簡単に速く

関連する問題