C++筆記 | Google C++ 風格指南學習 命名約定

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 常量命名

聲明爲constexprconst的變量, 或在程序運行期間其值始終保持不變的, 命名時以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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章