C++編程規範:101條規則,準則與最佳實踐

C++編程規範:101條規則,準則與最佳實踐

《C++編程規範:101條規則,準則與最佳實踐》是2020年4月人民郵電出版社出版的圖書,作者是[加]赫布 薩特(Herb Sutter)、[羅]安德烈亞歷克斯安德萊斯庫(Andrei Alexandrescu)。

基本介紹

  • 中文名:C++編程規範:101條規則,準則與最佳實踐
  • 作者:[加]赫布 薩特(Herb Sutter)、[羅]安德烈亞歷克斯安德萊斯庫(Andrei Alexandrescu)
  • 出版社:人民郵電出版社
  • 出版時間:2020年4月
  • 頁數:216 頁
  • 定價:39 元
  • 開本:16 開
  • 裝幀:平裝
  • ISBN:9787115351357
內容簡介,圖書目錄,

內容簡介

在《C++編程規範:101條規則、準則與實踐》中,兩位知名的C++專家將全球C++界20年的集體智慧和經驗凝結成一套編程規範。這些規範可以作為每一個開發團隊制定實際開發規範的基礎,更是每一位C++程式設計師應該遵循的行事準則。書中對每一條規範都給出了描述,並輔以實例說明;從類型定義到錯誤處理,都給出了C++實踐,即使使用C++多年的程式設計師也會從本書中受益匪淺。
《C++編程規範:101條規則、準則與實踐》適合於各層次C++程式設計師使用,也可作為高等院校C++課程的教學參考書。

圖書目錄

組織和策略問題 1
第0條 不要拘泥於小節(又名:了解哪些東西不應該標準化) 2
第 1條 在高警告級別乾淨利落地進行編譯 4
第 2條 使用自動構建系統 7
第3條 使用版本控制系統 8
第4條 做代碼審查 9設計風格 11
第5條 一個實體應該只有一個緊湊的職責 12
第6條 正確、簡單和清晰第 一 13
第7條 編程中應知道何時和如何考慮可伸縮性 14
第8條 不要進行不成熟的最佳化 16
第9條 不要進行不成熟的劣化 18
第 10條 儘量減少全局和共享數據 19
第 11條 隱藏信息 20
第 12條 懂得何時和如何進行並發性編程 21
第 13條 確保資源為對象所擁有。使用顯式的RAII和智慧型指針 24
編程風格 27
第 14條 寧要編譯時和連線時錯誤,也不要運行時錯誤 28
第 15條 積極使用const 30
第 16條 避免使用宏 32
第 17條 避免使用“魔數” 34
第 18條 儘可能局部地聲明變數 35
第 19條 總是初始化變數 36
第 20條 避免函式過長,避免嵌套過深 38
第 21條 避免跨編譯單元的初始化依賴 39
第 22條 儘量減少定義性依賴。避免循環依賴 40
第 23條 頭檔案應該自給自足 42
第 24條 總是編寫內部#include保護符,決不要編寫外部#include保護符 43
函式與操作符 45
第 25條 正確地選擇通過值、(智慧型)指針或者引用傳遞參數 46
第 26條 保持重載操作符的自然語義 47
第 27條 優先使用算術操作符和賦值操作符的標準形式 48
第 28條 優先使用++和--的標準形式。優先調用前綴形式 50
第 29條 考慮重載以避免隱含類型轉換 51
第30條 避免重載&&、||或 ,(逗號) 52
第31條 不要編寫依賴於函式參數求值順序的代碼 54
類的設計與繼承 55
第32條 弄清所要編寫的是哪種類 56
第33條 用小類代替巨類 57
第34條 用組合代替繼承 58
第35條 避免從並非要設計成基類的類中繼承 60
第36條 優先提供抽象接口 62
第37條 公用繼承即可替換性。繼承,不是為了重用,而是為了被重用 64
第38條 實施安全的覆蓋 66
第39條 考慮將虛擬函式聲明為非公用的,將公用函式聲明為非虛擬的 68
第40條 要避免提供隱式轉換 70
第41條 將數據成員設為私有的,無行為的聚集(C語言形式的struct)除外 72
第42條 不要公開內部數據 74
第43條 明智地使用Pimpl 76
第44條 優先編寫非成員非友元函式 79
第45條 總是一起提供new和delete 80
第46條 如果提供類專門的new,應該提供所有標準形式(普通、就地和不拋出) 82
構造、析構與複製 85
第47條 以同樣的順序定義和初始化成員變數 86
第48條 在構造函式中用初始化代替賦值 87
第49條 避免在構造函式和析構函式中調用虛擬函式 88
第50條 將基類析構函式設為公用且虛擬的,或者保護且非虛擬的 90
第51條 析構函式、釋放和交換絕 對不能失敗 92
第52條 一致地進行複製和銷毀 94
第53條 顯式地啟用或者禁止複製 95
第54條 避免切片。在基類中考慮用克隆代替複製 96
第55條 使用賦值的標準形式 99
第56條 只要可行,就提供不會失敗的swap(而且要正確地提供) 100
名字空間與模組 103
第57條 將類型及其非成員函式接口置於同一名字空間中 104
第58條 應該將類型和函式分別置於不同的名字空間中,除非有意想讓它們一起工作 106
第59條 不要在頭檔案中或者#include之前編寫名字空間using 108
第60條 要避免在不同的模組中分配和釋放記憶體 111
第61條 不要在頭檔案中定義具有連結的實體 112
第62條 不要允許異常跨越模組邊界傳播 114
第63條 在模組的接口中使用具有良好可移植性的類型 116
模板與泛型 119
第64條 理智地結合靜態多態性和動態多態性 120
第65條 有意地進行顯式自定義 122
第66條 不要特化函式模板 126
第67條 不要無意地編寫不通用的代碼 128
錯誤處理與異常 129
第68條 廣泛地使用斷言記錄內部假設和不變式 130
第69條 建立合理的錯誤處理策略,並嚴格遵守 132
第70條 區別錯誤與非錯誤 134
第71條 設計和編寫錯誤安全代碼 137
第72條 優先使用異常報告錯誤 140
第73條 通過值拋出,通過引用捕獲 144
第74條 正確地報告、處理和轉換錯誤 145
第75條 避免使用異常規範 146
STL:容器 149
第76條 默認時使用vector。否則,選擇其他合適的容器 150
第77條 用vector和string代替數組 152
第78條 使用vector(和string::c_str)與非C++ API交換數據 153
第79條 在容器中只存儲值和智慧型指針 154
第80條 用push_back代替其他擴展序列的方式 155
第81條 多用範圍操作,少用單元素操作 156
第82條 使用公認的慣用法真正地壓縮容量,真正地刪除元素 157
STL:算法 159
第83條 使用帶檢查的STL實現 160
第84條 用算法調用代替手工編寫的循環 162
第85條 使用正確的STL查找算法 165
第86條 使用正確的STL排序算法 166
第87條 使謂詞成為純函式 168
第88條 算法和比較器的參數應多用函式對象少用函式 170
第89條 正確編寫函式對象 172
類型安全 173
第90條 避免使用類型分支,多使用多態 174
第91條 依賴類型,而非其表示方式 176
第92條 避免使用reinterpret_cast 177
第93條 避免對指針使用static_cast 178
第94條 避免強制轉換const 179
第95條 不要使用C風格的強制轉換 180
第96條 不要對非POD進行memcpy操作或者memcmp操作 182
第97條 不要使用聯合重新解釋表示方式 183
第98條 不要使用可變長參數(...) 184
第99條 不要使用失效對象。不要使用不安全函式 185
第 100條 不要多態地處理數組 186
參考文獻 187
摘要匯總 193
索引 205

相關詞條

熱門詞條

聯絡我們