C++ 風格指南
命名
目錄名
使用 小蛇式 命名法 例如: my_directory
文件名
使用 大駝峰 命名法, 例如: MyFile.cpp。 對於單個類文件,文件名應該與類名一致。
類型名稱
使用 大駝峰 命名法, 例如: MyClass。 所有類型(包括類、結構、類型別名、枚舉和類型模板參數)的名稱都應遵循此規則
變量名
常用變量名
使用 小駝峰 命名法, 例如: myVariable。
類和結構數據成員
對於非公開(私有和受保護)成員使用 匈牙利 命名法, 例如: mMyMember。
對於公開成員使用 小駝峰 命名法, 例如: myMember。
常量名稱
使用 大駝峰 命名法, 例如: MyConst。
函數名稱
使用 小駝峰 命名法, 例如: myFunction。
命名空間名稱
使用 小蛇式 命名法, 例如: my_namespace。
枚舉名稱
使用 大駝峰 命名法, 例如: MyEnumerator。
宏定義名稱
使用 大蛇式 命名法, 例如: MY_MACRO。
註釋
註釋風格
- 使用
// ...表示行尾註釋。 - 使用
/* ... */用於行中註釋。 - 使用
/// ...表示 Doxygen 註釋。
文件註釋
在每個文件的開頭使用許可證模板。
如果一個源文件(如 .h 文件)聲明瞭多個面向用戶的抽象(常用函數、相關類等),請在註釋中說明這些抽象的集合。
結構和類註釋
每個非顯而易見的類或結構體聲明都應附有註釋,說明其用途和使用方法,至少包括簡要介紹和公有屬性說明。
對於分離的類,例如:.h 和 .cpp,註釋應與頭文件放在一起。
函數註釋
至少包括簡要介紹、參數和返回值描述以及異常描述。
變量的註釋
類數據成員
所有公共成員都應有註釋。
全局變量
所有全局變量都應有註釋,說明它們是什麼,有什麼用途,以及(如果不清楚)為什麼要全局化。
實現註釋
使用第三人稱敘述。
函數參數註釋
如果函數參數不清楚,應添加註釋,例如: /*count=*/。
TODO 註釋
TODO 應包括大寫的 TODO 字符串,之後是問題 ID 和 TODO 引用的描述。
例如:// TODO(#1234): 在 Foo 服务关闭后更新此列表。