現在の位置
diff プラグインを使用中
- 追加された行はこの色です。
- 削除された行はこの色です。
- 仕様/コーディング規約/命名規則 へ行く。
- 仕様/コーディング規約/命名規則 の差分を削除
*命名規則 [#a0e2adf8] **型毎の規則 [#h7c50993] :TypeName | typedefの型定義は大文字と小文字を組み合わせて使用し,各単語の1文字目を大文字にする. :ClassName | クラス名は大文字と小文字を組み合わせて使用し,各単語の1文字目を大文字にする. :InterfaceNameIF | インターフェースは,基本クラス名と同じでサフィックス IF をつける :RoutineName | 関数,クラスメソッドには大文字と小文字を組み合わせて使用し,各単語の1文字目を大文字にする. :localVariable | ローカル変数には大文字と小文字を組み合わせて使用し,先頭の単語以外の1文字目を大文字にする :m_memberValiable | メンバ変数はローカル変数と同様のルールに加え,プレフィックス m_ をつける :g_globalValiable | グローバル変数はローカル変数と同様のルールに加え,プレフィックス g_ をつける :s_globalValiable | クラス内スタティック変数はローカル変数と同様のルールに加え,プレフィックス s_ をつける :CONSTANT | 名前付き定数は全て大文字.static const で定義されたものもこれに含まれる. :PREFIX_ENUMERATED_TYPE | 列挙子については,定数と同じく大文字.ただし,先頭にデータ型を表すプレフィックスをつける **名前の付け方 [#if763ecd] -省略形は極力使わない --長い変数名を打つのが面倒 -> IDE 使って入力支援を使え ** アクセス修飾子 [#kdfbf9cd] -public/protected/privateの順で書くこと **命名規則の例外 [#n3512e0a] ***プリミティブ型 [#o1d47196] 以下のプリミティブ型については,全て小文字で定義している s8, s16, s32, s64 // 符号付き整数 u8, u16, u32, u64 // 符号無し整数 ***STL,BOOSTの派生クラス [#f1973264] STL,BOOST派生クラスについては,一貫性を保つために一部クラス名が小文字となっている ***ループカウンタ [#z8df7974] ループカウンタについては,i,j,k... を使って良い **例 [#g582d442] static const int CONSTANT = 1; int g_globalVariable; enum EnumType { ET_INVALID, ET_DEFAULT }; void FunctionName( int* dst, const int& src ) { for( int i = 0; i < 10; i++ ){ } } class ClassName { protected: u32 m_memberVariable; Insn* m_insn; static int s_staticVariable; public: u32 GetMemberVariable() const { return m_memberVariable; } void SetMemberVariable(const u32 value) { m_memberVariable = value; } protected: u32 m_memberVariable; Insn* m_insn; static int s_staticVariable; }; *その他 [#tb91da5c] **参照について [#p83fffdf] -参照は,const 参照以外は使用禁止 --参照が左辺に置かれた場合,参照先が書き換えられることが一目でわからないため.ポインタであればアスタリスクが入るため,一目でわかる. **例外のcatch [#s65877b9] -例外はconst 参照で受けるように --ポインタで受ける:例外オブジェクトを誰が解放するのか不明 --オブジェクトの値で受ける:コピーが複数回発生する