はじめに
このページの意味
キャメルとは
AbstractList,ObjectInformation,など POD型とは
初期化の際に,newを必要としないものをPOD型,と認識している。 コーディングルール
クラス
非POD型はclassで定義する。
構造体
POD型はstructで定義する。 クラス・構造体名
キャメル。 typedef
キャメルで。 static定数
全部大文字,単語の区切りは'_'。 static変数・メンバ変数
基本としてprivateに書くこと! static関数・メンバ関数
小文字から始まるキャメルで。 内部クラス・構造体
キャメルで。 列挙型
enumのこと。 列挙型名
キャメルで。 要素名
列挙型名 + '_' + キャメルで。 名前空間
namespaceのこと。 記述順番は次の通り。 タイプ1.タイプ宣言。
例: タイプ2.前方参照
例:
名前
小文字から始まるキャメルで。 マクロ
定数マクロなら,定数と同じ命名規則で。 インデント
タブを使うこと。(タブサイズは4) 中括弧
中括弧は次のように,縦のラインをそろえること。 また,タイプ宣言をするときに複数の名前空間を使う時は例外で, 例: class RingBuff { }; } // end of namespace util インクルード
インクルード順番
1.システムヘッダabc順 インクルードガード
インクルードガードは#ifdefでは書かない。 #pragma once にする。 ヘッダの形式
1.インクルードガード ソースの形式
1.実装するヘッダのインクルード グローバル変数・グローバル関数
使用しない。 inline
inlineキーワードは使用しない。(コンパイラにがんばらせる) virtual
virtualキーワードは何よりも先に記述する。 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する。 公開するものに略称は使用しない
原則として,型名,関数名など |