C++筆記 | Google C++ 風格指南學習 命名約定
摘自:Google開源項目風格 | C++風格指南 7.命名約定
選擇分類的時候參考了CSDN | 關於博客中轉載和原創的文章 by JeffreyLau7
整理時間:200414
注:只整理了作爲一個C++初學者能看懂的部分
文章目錄
7.命名約定
7.1 通用命名規則
使用描述性的命名,讓代碼易於新讀者理解
不要使用含糊不清的縮寫
一些特定的廣爲人知的縮寫是允許的, 例如用i
表示迭代變量和用T
表示模板參數
模板參數的命名應當遵循對應的分類: 類型模板參數應當遵循類型命名
的規則, 而非類型模板應當遵循變量命名
的規則
7.2 文件命名
文件名要全部小寫, 可以包含下劃線_
, 如my_useful_class.cc
C++ 文件要以.cc
結尾, 頭文件以.h
結尾. 專門插入文本的文件則以.inc
結尾
不要使用已經存在於/usr/include
下的文件名 (即編譯器搜索系統頭文件的路徑), 如db.h
通常應儘量讓文件名更加明確
定義類時文件名一般成對出現
內聯函數必須放在.h
文件中. 如果內聯函數比較短, 就直接放在.h
中
7.3 類型命名
所有類型命名——類, 結構體, 類型定義 (typedef), 枚舉, 類型模板參數——均使用相同約定, 即以大寫字母開始, 每個單詞首字母均大寫, 不包含下劃線.
如 MyExcitingClass
MyExcitingEnum
7.4 變量命名
變量 (包括函數參數)、數據成員名、結構體成員變量名一律小寫, 單詞之間用下劃線連接.
如a_local_variable
a_struct_data_member
類的成員變量以下劃線結尾
如a_class_data_member_
譯者(acgtyrant):
感覺 Google 的命名約定很高明, 比如寫了簡單的類QueryResult
, 接着又可以直接定義一個變量query_result
, 區分度很好;
再次, 類內變量以下劃線結尾, 那麼就可以直接傳入同名的形參, 比如TextQuery::TextQuery(std::string word) : word_(word) {}
, 其中word_
自然是類內私有成員.
7.5 常量命名
聲明爲constexpr
或const
的變量, 或在程序運行期間其值始終保持不變的, 命名時以k
開頭, 大小寫混合
如const int kDaysInAWeek = 7;
所有具有靜態存儲類型的變量 (例如靜態變量或全局變量) 都應當以此方式命名
7.6 函數命名
常規函數使用大小寫混合, 我選擇MyExcitingFunction()
MyExcitingMethod()
AddTableEntry()
DeleteUrl()
對於首字母縮寫的單詞, 更傾向於將它們視作一個單詞進行首字母大寫
例如, 寫作 StartRpc()
而非 StartRPC()
取值和設值函數的命名與變量一致. 一般來說它們的名稱與實際的成員變量對應. 例如 int count()
與 void set_count(int count)
7.8 枚舉命名
新代碼應該儘可能優先使用常量風格
枚舉的命名應當和常量一致, 如 kEnumName
如
enum UrlTableErrors {
kOK = 0,
kErrorOutOfMemory,
kErrorMalformedInput,
};
7.9 宏命名
不推薦使用宏, 一定要用, 像這樣命名: MY_MACRO_THAT_SCARES_SMALL_CHILDREN