-
Notifications
You must be signed in to change notification settings - Fork 31
命名規則
Ryota Shioya edited this page Mar 24, 2022
·
2 revisions
: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 | 列挙子については,定数と同じく大文字.ただし,先頭にデータ型を表すプレフィックスをつける
- 省略形は極力使わない
- 長い変数名を打つのが面倒 -> IDE 使って入力支援を使え
- public/protected/privateの順で書くこと
以下のプリミティブ型については,全て小文字で定義している
s8, s16, s32, s64 // 符号付き整数
u8, u16, u32, u64 // 符号無し整数
STL,BOOST派生クラスについては,一貫性を保つために一部クラス名が小文字となっている
ループカウンタについては,i,j,k... を使って良い
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 {
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;
};
- 参照は,const 参照以外は使用禁止
- 参照が左辺に置かれた場合,参照先が書き換えられることが一目でわからないため.ポインタであればアスタリスクが入るため,一目でわかる.
- 例外はconst 参照で受けるように
- ポインタで受ける:例外オブジェクトを誰が解放するのか不明
- オブジェクトの値で受ける:コピーが複数回発生する