《C++ 程式語言 經典增訂版》目錄
| 增訂版譯者序 | xiii
|
| 譯者序 | xvii
|
| 三版序 | xxi
|
| 二版序 | xxiii
|
| 一版序 | xxv
|
|
|
| 0 答客問 | 1
|
|
|
| 第零部 C++ 概論 | 21
|
| 1 給讀者的話 | 23
|
| 1.1 本書組織 | 23
|
| 1.2 學習 C++ | 27
|
| 1.3 C++ 的設計 | 29
|
| 1.4 C++ 的歷史 | 32
|
| 1.5 C++ 的使用 | 35
|
| 1.6 C 和 C++ | 36
|
| 1.7 C++ 編程思維 | 39
|
| 1.8 建議 | 41
|
| 2 C++ 之旅 | 47
|
| 2.1 C++ 是什麼 | 47
|
| 2.2 程式設計派別 | 48
|
| 2.3 程序化編程 | 49
|
| 2.4 模組化編程 | 53
|
| 2.5 資料抽象化 | 57
|
| 2.6 物件導向編程 | 66
|
| 2.7 泛型編程 | 70
|
| 2.8 補述 | 74
|
| 2.9 建議 | 74
|
| 3 標準程式庫之旅 | 75
|
| 3.1 簡介 | 75
|
| 3.2 Hello, world! | 76
|
| 3.3 標準程式庫的命名空間 | 76
|
| 3.4 輸出 | 77
|
| 3.5 字串 | 78
|
| 3.6 輸入 | 80
|
| 3.7 容器 | 83
|
| 3.8 演算法 | 88
|
| 3.9 數學 | 98
|
| 3.10 標準程式庫設施 | 100
|
| 3.11 建議 | 100
|
|
|
| 第壹部 基礎設施 | 103
|
| 4 型別與宣告 | 105
|
| 4.1 型別 | 105
|
| 4.2 布林型別 | 107
|
| 4.3 字元型別 | 108
|
| 4.4 整數型別 | 110
|
| 4.5 浮點數型別 | 111
|
| 4.6 容量 | 112
|
| 4.7 void | 114
|
| 4.8 列舉型別 | 114
|
| 4.9 宣告 | 116
|
| 4.10 建議 | 125
|
| 4.11 習題 | 126
|
| 5 指標、陣列、結構體 | 129
|
| 5.1 指標 | 129
|
| 5.2 陣列 | 131
|
| 5.3 指到陣列內的指標 | 134
|
| 5.4 常數 | 138
|
| 5.5 指涉器 | 142
|
| 5.6 void 指標 | 146
|
| 5.7 結構體 | 147
|
| 5.8 建議 | 151
|
| 5.9 習題 | 151
|
| 6 運算式和述句 | 155
|
| 6.1 計算機 | 155
|
| 6.2 運算子總整理 | 170
|
| 6.3 述句總整理 | 187
|
| 6.4 註解和縮排 | 194
|
| 6.5 建議 | 196
|
| 6.6 習題 | 197
|
| 7 函數 | 203
|
| 7.1 函數宣告 | 203
|
| 7.2 參數傳遞 | 206
|
| 7.3 傳回值 | 209
|
| 7.4 多載函數名字 | 210
|
| 7.5 預設參數 | 216
|
| 7.6 不定個數的參數 | 217
|
| 7.7 函數指標 | 220
|
| 7.8 巨集 | 224
|
| 7.9 建議 | 228
|
| 7.10 習題 | 228
|
| 8 命名空間和異常處理 | 233
|
| 8.1 模組化和介面 | 233
|
| 8.2 命名空間 | 235
|
| 8.3 異常處理機制 | 259
|
| 8.4 建議 | 269
|
| 8.5 習題 | 270
|
| 9 原始檔和程式 | 273
|
| 9.1 個別編譯 | 273
|
| 9.2 連結性 | 274
|
| 9.3 使用引入檔 | 288
|
| 9.4 程式 | 299
|
| 9.3 建議 | 302
|
| 9.4 習題 | 303
|
|
|
| 第貳部 抽象化機制 | 305
|
| 10 類別 | 307
|
| 10.1 簡介 | 307
|
| 10.2 類別 | 308
|
| 10.3 有效率的用戶自訂型別 | 322
|
| 10.4 物件 | 330
|
| 10.5 建議 | 350
|
| 10.6 習題 | 351
|
| 11 運算子多載 | 355
|
| 11.1 簡介 | 355
|
| 11.2 運算子函數 | 356
|
| 11.3 複數型別 | 362
|
| 11.4 轉型運算子 | 372
|
| 11.5 夥伴 | 376
|
| 11.6 大型物件 | 381
|
| 11.7 必備的運算子 | 383
|
| 11.8 下標 | 386
|
| 11.9 函數呼叫 | 387
|
| 11.10 間接取值 | 389
|
| 11.11 遞增與遞減 | 391
|
| 11.12 字串類別 | 393
|
| 11.13 建議 | 399
|
| 11.14 習題 | 400
|
| 12 衍生類別 | 405
|
| 12.1 簡介 | 405
|
| 12.2 衍生類別 | 406
|
| 12.3 抽象類別 | 419
|
| 12.4 類別階層設計 | 421
|
| 12.5 類別階層和抽象類別 | 433
|
| 12.6 建議 | 434
|
| 12.7 習題 | 435
|
| 13 模板 | 439
|
| 13.1 簡介 | 439
|
| 13.2 簡單的字串模板 | 440
|
| 13.3 函數模板 | 448
|
| 13.4 以模板參數制定政策 | 454
|
| 13.5 特化版 | 456
|
| 13.6 衍生與模板 | 462
|
| 13.7 原始檔組織方式 | 469
|
| 13.8 建議 | 471
|
| 13.9 習題 | 473
|
| 14 異常處理 | 475
|
| 14.1 異常處理 | 475
|
| 14.2 為異常做分類 | 479
|
| 14.3 捕捉異常 | 482
|
| 14.4 資源管理 | 486
|
| 14.5 不視為錯誤的異常 | 498
|
| 14.6 異常規格列 | 499
|
| 14.7 未被捕捉的異常 | 505
|
| 14.8 異常與效率 | 507
|
| 14.9 其他做法 | 509
|
| 14.10 C++ 標準異常類別 | 511
|
| 14.11 建議 | 513
|
| 14.12 習題 | 515
|
| 15 類別階層 | 517
|
| 15.1 簡介 | 517
|
| 15.2 多重繼承 | 518
|
| 15.3 存取控制 | 532
|
| 15.4 執行期型別資訊 | 539
|
| 15.5 指向成員的指標 | 553
|
| 15.6 自由配置區 | 557
|
| 15.7 建議 | 562
|
| 15.8 習題 | 563
|
|
|
| 第參部 標準程式庫 | 565
|
| 16 程式庫組織和容器 | 567
|
| 16.1 標準程式庫的設計 | 567
|
| 16.2 容器的設計 | 575
|
| 16.3 向量 | 585
|
| 16.4 建議 | 606
|
| 16.5 習題 | 607
|
| 17 標準容器 | 609
|
| 17.1 標準容器 | 609
|
| 17.2 序列 | 620
|
| 17.3 序列配接器 | 627
|
| 17.4 關聯式容器 | 633
|
| 17.5 似真容器 | 648
|
| 17.6 定義新的容器 | 655
|
| 17.7 建議 | 663
|
| 17.8 習題 | 664
|
| 18 演算法與函數物件 | 669
|
| 18.1 簡介 | 669
|
| 18.2 標準程式庫演算法一覽表 | 669
|
| 18.3 序列和容器 | 675
|
| 18.4 函數物件 | 678
|
| 18.5 不更動序列的演算法 | 690
|
| 18.6 更動序列的演算法 | 697
|
| 18.7 已排序之序列 | 709
|
| 18.8 堆積 | 715
|
| 18.9 min 和 max | 716
|
| 18.10 排列 | 717
|
| 18.11 C 式演算法 | 718
|
| 18.12 建議 | 719
|
| 18.13 習題 | 720
|
| 19 迭代器與空間配置器 | 723
|
| 19.1 簡介 | 723
|
| 19.2 迭代器和序列 | 724
|
| 19.3 會做檢驗的迭代器 | 738
|
| 19.4 空間配置器 | 745
|
| 19.5 建議 | 759
|
| 19.6 習題 | 760
|
| 20 字串 | 763
|
| 20.1 簡介 | 763
|
| 20.2 字元 | 764
|
| 20.3 basic_string | 767
|
| 20.4 C 標準程式庫 | 787
|
| 20.5 建議 | 791
|
| 20.6 習題 | 792
|
| 21 資料流 | 795
|
| 21.1 簡介 | 795
|
| 21.2 輸出 | 797
|
| 21.3 輸入 | 805
|
| 21.4 格式化 | 820
|
| 21.5 檔案與字串資料流 | 835
|
| 21.6 緩衝區 | 842
|
| 21.7 地域性資訊 | 852
|
| 21.8 C 式 I/O | 854
|
| 21.9 建議 | 859
|
| 21.10 習題 | 860
|
| 22 數值運算 | 865
|
| 22.1 簡介 | 865
|
| 22.2 數值之極限 | 866
|
| 22.3 標準數學函數 | 869
|
| 22.4 向量算術 | 870
|
| 22.5 複數運算 | 893
|
| 22.6 一般化的數值演算法 | 896
|
| 22.7 亂數 | 900
|
| 22.8 建議 | 902
|
| 22.9 習題 | 903
|
|
|
| 第肆部 C++ 系統開發事項 | 905
|
| 23 系統開發與設計 | 907
|
| 23.1 總覽 | 907
|
| 23.2 簡介 | 908
|
| 23.3 目標與方法 | 910
|
| 23.4 開發流程 | 913
|
| 23.5 管理 | 935
|
| 23.6 文獻評註 | 942
|
| 23.7 建議 | 945
|
| 24 系統設計與編程 | 949
|
| 24.1 總覽 | 949
|
| 24.2 設計與編程 | 919
|
| 24.3 類別 | 960
|
| 24.4 元件 | 988
|
| 24.5 建議 | 998
|
| 25 類別的角色 | 1001
|
| 25.1 類別種類 | 1001
|
| 25.2 具象型別 | 1002
|
| 25.3 抽象型別 | 1007
|
| 25.4 節點類別 | 1010
|
| 25.5 動作 | 1015
|
| 25.6 介面類別 | 1017
|
| 25.7 代碼類別 | 1022
|
| 25.8 應用程式框架 | 1027
|
| 25.9 建議 | 1029
|
| 25.10 習題 | 1030
|
|
|
| 附錄 | 1033
|
| 附錄A 文法 | 1035
|
| A.1 簡介 | 1035
|
| A.2 關鍵字 | 1036
|
| A.3 語彙慣例 | 1037
|
| A.4 程式 | 1041
|
| A.5 運算式 | 1041
|
| A.6 述句 | 1046
|
| A.7 宣告 | 1047
|
| A.8 類別 | 1053
|
| A.9 模板 | 1056
|
| A.10 異常處理 | 1057
|
| A.11 前置處理器指令 | 1058
|
| 附錄B 相容性 | 1061
|
| B.1 簡介 | 1061
|
| B.2 C/C++ 相容性 | 1062
|
| B.3 應付早期的 C++ 實作環境 | 1069
|
| B.4 建議 | 1075
|
| B.5 習題 | 1077
|
| 附錄C 技術性事項 | 1079
|
| C.1 簡介 | 1079
|
| C.2 C++ 標準 | 1079
|
| C.3 字元集 | 1081
|
| C.4 整數字面常數的型別 | 1085
|
| C.5 常數運算式 | 1086
|
| C.6 隱式型別轉換 | 1087
|
| C.7 多維陣列 | 1091
|
| C.8 節省空間 | 1095
|
| C.9 記憶體管理 | 1099
|
| C.10 命名空間 | 1104
|
| C.11 存取控制 | 1107
|
| C.12 指向資料成員的指標 | 1111
|
| C.13 模板 | 1112
|
| C.14 建議 | 1130
|
| 附錄D 國際化議題 | 1133
|
| D.1 處理文化差異 | 1133
|
| D.2 locale 類別 | 1138
|
| D.3 facet | 1148
|
| D.4 標準的 facet | 1156
|
| D.5 建議 | 1210
|
| D.6 習題 | 1211
|
| 附錄E 標準程式庫的異常處理安全性 | 1215
|
| E.1 簡介 | 1215
|
| E.2 異常處理安全性 | 1216
|
| E.3 安全的異常處理實作技術 | 1221
|
| E.4 標準容器的保證 | 1238
|
| E.5 標準程式庫的其他部份 | 1249
|
| E.6 標準程式庫用戶需知 | 1252
|
| E.7 建議 | 1255
|
| E.8 習題 | 1256
|
| 索引 | 1259
|