ソース表示: CodingRuleNamingRule #50073

[[PageOutline]]
----
= 一般的な名前付け規約 =
----

すべての名前空間,クラス,構造体,パラメタなどは,後述の規則に従って付与すること.

== 使用する文字 ==

define で定義されたマクロ以外は,すべて小文字英数,数字,アンダースコアで記述すること.

||種別||使用できる文字||
||マクロ||A-Z, 0-9, _(アンダースコア)||
||変数||a-z, 0-9, _(アンダースコア)||
||関数||a-z, 0-9, _(アンダースコア)||
||クラス名||a-z, 0-9, _(アンダースコア)||
||列挙型/列挙子||a-z, 0-9, _(アンダースコア)||

== 複合語の扱い ==

複合語(たとえば password,scoreboard など,一般的な辞書に掲載されているもの)は単一の単語として扱う.

'''注意: filename,username などは複合語ではない.user_name,file_name などと記すこと.'''

例)
{{{ code cpp

  // Bad -- 「score_board」というキーワードでないと検索できない.
  // このソースでは「score」と「board」は別単語として扱われていることを知っておく必要がある.

  std::map<int, char*> score_board;
  int score_board_index;

  // Nice -- 「socreboard」というキーワードで検索できる.
  // 一般的な英語の知識があれば良い.
  
  std::map<int, char*> scoreboard;
  int scoreboard_index;
}}}

----

== 省略形の禁止 ==

省略された単語は本来の意味を理解する妨げとなるため,必ず全体を記述すること.

例)
{{{ code cpp
  // Bad -- wd が何を示すか不明瞭である.

  std::string passwd;

  // Nice -- パスワードであることが明確である.  

  std::string password; // Nice
}}}

----

== ハンガリー記法の禁止 ==

ハンガリー記法は命名時に型を拘束するため,これを禁止する.

例)
{{{ code cpp
  // Bad -- sz は,String terminated by Zero の略.
  //「NULL ターミネートされたキーワードを示す文字列である」ことを永続的に拘束する.

  char* szKeyword = "The Keyword"; 

  // Nice -- 「キーワードである」という変数の意味のみを拘束する.
  // 後に独自のクラスに置き換える場合も,変数名に影響は少ない.

  char* keyword = "The Keyword";
}}}

----