はじめにこのページの意味
キャメルとはAbstractList,ObjectInformation,など POD型とは初期化の際に,newを必要としないものをPOD型,と認識している。 つまり,メンバ変数にクラスのポインタを所持し, それをコンストラクタでnewするものは非POD型。 メンバ変数にコンストラクタを呼ぶものがない型がPOD型,と認識している。 コーディングルールクラス非POD型はclassで定義する。
構造体POD型はstructで定義する。 クラス・構造体名キャメル。 typedefキャメルで。 static定数全部大文字,単語の区切りは'_'。 static変数・メンバ変数基本としてprivateに書くこと! 小文字から始まるキャメル + '_'。 private以外なら '_' は除去。 s + キャメル。 private以外ならキャメル。 static関数・メンバ関数小文字から始まるキャメルで。 privateに記述する場合,頭に'_'。 static関数はキャメル。 メンバ関数は小文字から始まるキャメル。 内部クラス・構造体キャメルで。 privateなら + '_' 。 列挙型enumのこと。 列挙型名キャメルで。 要素名列挙型名 + '_' + キャメルで。 名前空間namespaceのこと。 名前空間直下に変数・関数の記述は禁止。 記述順番は次の通り。 タイプ1.タイプ宣言。
例: タイプ2.前方参照
例:
名前小文字から始まるキャメルで。 小文字。単語の区切りにアンダーバーを使ってよい。 マクロ定数マクロなら,定数と同じ命名規則で。 関数っぽいマクロ( ex. abs() )なら,関数と同じ命名規則で。 インデントタブを使うこと。(タブサイズは4) タブは使用禁止。全て半角スペースで表現すること。(環境によって見え方が変わることを防ぐため) インデントサイズは4。 中括弧中括弧は次のように,縦のラインをそろえること。 また,タイプ宣言をするときに複数の名前空間を使う時は例外で, 中括弧が1つだけ後にでるように宣言する。 例: namespace apcl { namespace util { class RingBuff { }; } // end of namespace util } // end of namespace apcl インクルードインクルード順番1.システムヘッダabc順 インクルードガードインクルードガードは#ifdefでは書かない。 #pragma once にする。 ヘッダの形式1.インクルードガード ソースの形式1.実装するヘッダのインクルード グローバル変数・グローバル関数使用しない。 inlineinlineキーワードは使用しない。(コンパイラにがんばらせる) 書かないといけない場合を除いて使用しない。 virtualvirtualキーワードは何よりも先に記述する。 const変数に対するconstキーワードはタイプ名の直前に付ける。 ファイルルール拡張子.h : Cヘッダ 1タイプ1ヘッダ1ソース1つのヘッダファイル2つ以上の型を宣言しない。 また,ヘッダに対応したソースファイルを必ず用意する。 1名前空間1ディレクトリ1つの名前空間に対して1つのディレクトリを作成する。 名前空間.h次のような感じで,名前空間で公開すべきヘッダをインクルード記述した名前空間.hを設置する。 ディレクトリ構造 mylib +--util.h +--util | +--RingBuff.hpp | +--RingBuff.cpp util.hの中身
ポリシーnewしたクラスがdeleteする原則として,newしたクラスが責任を持ってdeleteする。 公開するものに略称は使用しない原則として,型名,関数名など using namespaceは使用禁止
|