私が使っているC++プログラミング命名規則

この手の命名規則にはgoogle:ハンガリアン記法なんかが有名だと思った。
私がDKUTプロジェクト内で使っている命名規則を挙げたいと思う。


接頭辞に I  
InterfaceのI 基底クラス、virtualを宣言している抽象クラス。
接頭辞に C  
ClassのC virtual宣言メンバ関数をすべて実装している、宣言のみで使えるクラス。
接尾辞に interface
templateによるboost形式のコーディングスタイル*1のベースクラスとして作ったクラス。
クラス名の文字が小文字
interface系クラスから派生されたかもしくはクラスの継承関係に関して依存が無いクラス。
往々にしてboost形式のコーディングスタイルに影響されている。
クラス内の変数の接頭辞は小文字の m
member の m 大体はクラス内変数はこれに沿っている。もちろん例外も多数ある。
接尾辞に functor
functor*2として使うクラス。
VC6ではtemplate関数がバグる事があるらしいのでいちいちクラスをfunctor化させているという裏事情もある。
policy,traits系
いわいるgoogle:traits系クラス。もしくはpolicy系*3クラス。

interfaceクラスのpolicy、traitsとして使うクラス。
実はtraitsとpolicyの違いをよく理解していない。
なので、policyとtraitsの両概念をあわせて使ったりもする。