はじめに Edit

このページの意味 Edit

  • 忘れないようにメモっておく。
  • 自分のコードでこれに違反してたらただちに取り締まる。

キャメルとは Edit

AbstractList,ObjectInformation,など
単語の頭が大文字にしたやつのこと,らしい。

POD型とは Edit

初期化の際に,newを必要としないものをPOD型,と認識している。
つまり,メンバ変数にクラスのポインタを所持し,
それをコンストラクタでnewするものは非POD型。

コーディングルール Edit

クラス Edit

非POD型はclassで定義する。
書式は次の通り。

  • 公開修飾子はpublic,protected,privateの順番
  • 要素の順番
    • typedef
    • static定数
    • static変数
    • static関数
    • メンバ変数
    • コンストラクタ
      • デフォルトコンストラクタ
      • コピーコンストラクタ
      • その他のコンストラクタ
    • デストラクタ
    • メンバ関数
    • 内部クラス・構造体

構造体 Edit

POD型はstructで定義する。

クラス・構造体名 Edit

キャメル。

typedef Edit

キャメルで。
privateなら + '_' 。

static定数 Edit

全部大文字,単語の区切りは'_'。

static変数・メンバ変数 Edit

基本としてprivateに書くこと!
小文字から始まるキャメル + '_'。
private以外なら '_' は除去。

static関数・メンバ関数 Edit

小文字から始まるキャメルで。
privateに記述する場合,頭に'_'。

内部クラス・構造体 Edit

キャメルで。
privateなら + '_' 。

列挙型 Edit

enumのこと。

列挙型名 Edit

キャメルで。

要素名 Edit

列挙型名 + '_' + キャメルで。

名前空間 Edit

namespaceのこと。

記述順番は次の通り。

タイプ1.タイプ宣言。

  • using タイプ名。
  • タイプ宣言。
    (abc順)

タイプ2.前方参照

  • struct タイプ名
  • class タイプ名
    (abc順)

名前 Edit

小文字から始まるキャメルで。

マクロ Edit

定数マクロなら,定数と同じ命名規則で。
関数っぽいマクロ( ex. abs() )なら,関数と同じ命名規則で。

インデント Edit

タブを使うこと。(タブサイズは4)

中括弧 Edit

中括弧は次のように,縦のラインをそろえること。

すべてを展開すべてを収束
  1
  2
  3
  4
  5
  6
  7
 
-
|
-
!
!
 
void main()
{
  while(1)
  {
  }
}

インクルードガード Edit

インクルードガードは#ifdefでは書かない。

#pragma once にする。

ファイルルール Edit

拡張子 Edit

.h : Cヘッダ
.c : Cソース
.hpp : C++ヘッダ
.cpp : C++ソース
.pch : プリコンパイルヘッダ

1タイプ1ヘッダ Edit

1つのヘッダファイル2つ以上の型を宣言しない。
ファイル名には,宣言した型の名前を用いる。

1名前空間1ディレクトリ Edit

1つの名前空間に対して1つのディレクトリを作成する。
ディレクトリ名には,名前空間をそのまま使用する。

名前空間.h Edit

次のような感じで,名前空間で公開すべきヘッダをインクルード記述した名前空間.hを設置する。

ディレクトリ構造

mylib
+--util.h
+--util
|  +--RingBuff.hpp
|  +--RingBuff.cpp

util.hの中身

すべてを展開すべてを収束
  1
  2
  3
  4
  5
 
 
 
 
 
/** @file @brief utilモジュールの公開ヘッダファイルのincludeを記述する **/
#pragma once
 
#include <mylib/util/RingBuff.hpp>

ポリシー Edit

newしたクラスがdeleteする Edit

原則として,newしたクラスが責任を持ってdeleteする。
ただし,FactoryMethodなどで,newしたものを渡すときは例外とし,
その場合はコメントに”必ずdeleteすべし”ということを書くこと。

公開するものに略称は使用しない Edit

原則として,型名,関数名など
公開するもに略称を使用してはいけない。


    ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS