Google 經(jīng)常會發(fā)布一些開源項目, 意味著會接受來自其他代碼貢獻者的代碼. 但是如果代碼貢獻者的編程風(fēng)格與 Google 的不一致, 會給代碼閱讀者和其他代碼提交這造成不小的困擾. Google 因此發(fā)布了這份自己的編程風(fēng)格, 使所有提交代碼的人都能獲知 Google 的編程風(fēng)格
“我認(rèn)為這是地球上最好的一份C++編程規(guī)范,沒有之一,建議廣大國內(nèi)外IT研究使用。”李開復(fù)對Google C++編碼規(guī)范給予了極高的評價。
目錄
譯者前言
背景
1. 頭文件
1.1. #define 保護
1.2. 頭文件依賴
1.3. 內(nèi)聯(lián)函數(shù)
1.4. -inl.h文件
1.5. 函數(shù)參數(shù)的順序
1.6. #include 的路徑及順序
譯者 (YuleFox) 筆記
2. 作用域
2.1. 名字空間
2.1.1. 匿名名字空間
2.1.2. 具名的名字空間
2.2. 嵌套類
2.3. 非成員函數(shù), 靜態(tài)成員函數(shù), 和全局函數(shù)
2.4. 局部變量
2.5. 靜態(tài)和全局變量
譯者 (YuleFox) 筆記
3. 類
3.1. 構(gòu)造函數(shù)的職責(zé)
3.2. 默認(rèn)構(gòu)造函數(shù)
3.3. 顯式構(gòu)造函數(shù)
3.4. 拷貝構(gòu)造函數(shù)
3.5. 結(jié)構(gòu)體 VS. 類
3.6. 繼承
3.7. 多重繼承
3.8. 接口
3.9. 運算符重載
3.10. 存取控制
3.11. 聲明順序
3.12. 編寫簡短函數(shù)
譯者 (YuleFox) 筆記
4. 來自 Google 的奇技
4.1. 智能指針
4.2. cpplint
5. 其他 C++ 特性
5.1. 引用參數(shù)
5.2. 函數(shù)重載
5.3. 缺省參數(shù)
5.4. 變長數(shù)組和 alloca()
5.5. 友元
5.6. 異常
5.7. 運行時類型識別
5.8. 類型轉(zhuǎn)換
5.9. 流
5.10. 前置自增和自減
5.11. const 的使用
5.12. 整型
5.13. 64 位下的可移植性
5.14. 預(yù)處理宏
5.15. 0 和 NULL
5.16. sizeof
5.17. Boost 庫
6. 命名約定
6.1. 通用命名規(guī)則
6.2. 文件命名
6.3. 類型命名
6.4. 變量命名
6.5. 常量命名
6.6. 函數(shù)命名
6.7. 名字空間命名
6.8. 枚舉命名
6.9. 宏命名
6.10. 命名規(guī)則的特例
7. 注釋
7.1. 注釋風(fēng)格
7.2. 文件注釋
7.3. 類注釋
7.4. 函數(shù)注釋
7.5. 變量注釋
7.6. 實現(xiàn)注釋
7.7. 標(biāo)點, 拼寫和語法
7.8. TODO 注釋
譯者 (YuleFox) 筆記
8. 格式
8.1. 行長度
8.2. 非 ASCII 字符
8.3. 空格還是制表位
8.4. 函數(shù)聲明與定義
8.5. 函數(shù)調(diào)用
8.6. 條件語句
8.7. 循環(huán)和開關(guān)選擇語句
8.8. 指針和引用表達式
8.9. 布爾表達式
8.10. 函數(shù)返回值
8.11. 變量及數(shù)組初始化
8.12. 預(yù)處理指令
8.13. 類格式
8.14. 初始化列表
8.15. 名字空間格式化
8.16. 水平留白
8.17. 垂直留白
譯者 (YuleFox) 筆記
9. 規(guī)則特例
9.1. 現(xiàn)有不合規(guī)范的代碼
9.2. Windows 代碼
10. 結(jié)束語