內容簡介
《C++程式設計語言》(原書第4版)是C++領域經典的參考書,介紹了C++11的各項新特性和新功能。全書共分四部分。部分(第1~5章)是引言,包括C++的背景知識,C++語言及其標準庫的簡要介紹;第二部分(第6~15章)介紹C++的內置類型和基本特性,以及如何用它們構造程式;第三部分(第16~29章)介紹C++的抽象機制及如何用這些機制編寫面向對象程式和泛型程式;第四部分(第30~44章)概述標準庫並討論一些兼容性問題。由於篇幅問題,原書中文版分兩冊出版,分別對應原書的至三部分和第四部分。這一冊為至三部分。
圖書目錄
The C++ Programming Language, Fourth Edition
出版者的話
譯者序
前言
第3版前言
第2版前言
第1版前言
第一部分 引言
第1章 致讀者 2
1.1 本書結構 2
1.1.1 引言 2
1.1.2 基本特性 3
1.1.3 抽象機制 4
1.1.4 標準庫 5
1.1.5 例子和參考文獻 5
1.2 C++的設計 7
1.2.1 程式設計風格 8
1.2.2 類型檢查 11
1.2.3 C兼容性 12
1.2.4 語言、庫和系統 12
1.3 學習C++ 14
1.3.1 用C++編程 15
1.3.2 對C++程式設計師的建議 16
1.3.3 對C程式設計師的建議 16
1.3.4 對Java程式設計師的建議 17
1.4 C++的歷史 18
1.4.1 大事年表 19
1.4.2 早期的C++ 19
1.4.3 1998標準 21
1.4.4 2011標準 23
1.4.5 C++的用途 26
1.5 建議 27
1.6 參考文獻 28
第2章 C++概覽:基礎知識 32
2.1 引言 32
2.2 基本概念 33
2.2.1 Hello,World! 33
2.2.2 類型、變數和算術運算 34
2.2.3 常量 36
2.2.4 檢驗和循環 37
2.2.5 指針、數組和循環 38
2.3 用戶自定義類型 40
2.3.1 結構 41
2.3.2 類 42
2.3.3 枚舉 43
2.4 模組化 44
2.4.1 分離編譯 45
2.4.2 名字空間 46
2.4.3 錯誤處理 47
2.5 附記 50
2.6 建議 50
第3章 C++概覽:抽象機制 51
3.1 引言 51
3.2 類 51
3.2.1 具體類型 52
3.2.2 抽象類型 56
3.2.3 虛函式 58
3.2.4 類層次 59
3.3 拷貝和移動 62
3.3.1 拷貝容器 63
3.3.2 移動容器 64
3.3.3 資源管理 66
3.3.4 抑制操作 66
3.4 模板 67
3.4.1 參數化類型 67
3.4.2 函式模板 69
3.4.3 函式對象 69
3.4.4 可變參數模板 71
3.4.5 別名 72
3.5 建議 73
第4章 C++概覽:容器與算法 74
4.1 標準庫 74
4.1.1 標準庫概述 75
4.1.2 標準庫頭檔案與名字空間 75
4.2 字元串 77
4.3 I/O流 78
4.3.1 輸出 78
4.3.2 輸入 79
4.3.3 用戶自定義類型的I/O 80
4.4 容器 81
4.4.1 vector 81
4.4.2 list 84
4.4.3 map 85
4.4.4 unordered_map 86
4.4.5 容器概述 86
4.5 算法 87
4.5.1 使用疊代器 88
4.5.2 疊代器類型 90
4.5.3 流疊代器 91
4.5.4 謂詞 93
4.5.5 算法概述 93
4.5.6 容器算法 94
4.6 建議 94
第5章 C++概覽:並發與實用功能 96
5.1 引言 96
5.2 資源管理 96
5.2.1 unique_ptr與shared_ptr 97
5.3 並發 99
5.3.1 任務和thread 99
5.3.2 傳遞參數 100
5.3.3 返回結果 100
5.3.4 共享數據 101
5.3.5 任務通信 103
5.4 小工具組件 106
5.4.1 時間 106
5.4.2 類型函式 107
5.4.3 pair和tuple 109
5.5 正則表達式 110
5.6 數學計算 111
5.6.1 數學函式和算法 111
5.6.2 複數 111
5.6.3 隨機數 112
5.6.4 向量算術 113
5.6.5 數值限制 113
5.7 建議 114
第二部分 基本功能
第6章 類型與聲明 116
6.1 ISO C++標準 116
6.1.1 實現 117
6.1.2 基本源程式字元集 118
6.2 類型 118
6.2.1 基本類型 119
6.2.2 布爾值 119
6.2.3 字元類型 121
6.2.4 整數類型 124
6.2.5 浮點數類型 126
6.2.6 前綴和後綴 127
6.2.7 void 128
6.2.8 類型尺寸 128
6.2.9 對齊 130
6.3 聲明 131
6.3.1 聲明的結構 133
6.3.2 聲明多個名字 134
6.3.3 名字 134
6.3.4 作用域 136
6.3.5 初始化 138
6.3.6 推斷類型:auto和decltype() 141
6.4 對象和值 144
6.4.1 左值和右值 144
6.4.2 對象的生命周期 145
6.5 類型別名 146
6.6 建議 147
第7章 指針、數組與引用 148
7.1 引言 148
7.2 指針 148
7.2.1 void* 149
7.2.2 nullptr 150
7.3 數組 150
7.3.1 數組的初始化器 152
7.3.2 字元串字面值常量 152
7.4 數組中的指針 155
7.4.1 數組漫遊 156
7.4.2 多維數組 158
7.4.3 傳遞數組 159
7.5 指針與const 161
7.6 指針與所有權 163
7.7 引用 163
7.7.1 左值引用 164
7.7.2 右值引用 167
7.7.3 引用的引用 169
7.7.4 指針與引用 170
7.8 建議 172
第8章 結構、聯合與枚舉 173
8.1 引言 173
8.2 結構 173
8.2.1 struct的布局 175
8.2.2 struct的名字 176
8.2.3 結構與類 177
8.2.4 結構與數組 178
8.2.5 類型等價 180
8.2.6 普通舊數據 180
8.2.7 域 182
8.3 聯合 183
8.3.1 聯合與類 185
8.3.2 匿名union 186
8.4 枚舉 188
8.4.1 enum class 188
8.4.2 普通的enum 191
8.4.3 未命名的enum 192
8.5 建議 193
第9章 語句 194
9.1 引言 194
9.2 語句概述 194
9.3 聲明作為語句 195
9.4 選擇語句 196
9.4.1 if語句 196
9.4.2 switch語句 198