●第1 部分 基 礎 篇 第1 章 初識C++ 程序 1. 1 編寫一個簡單的C++ 程序 1. 2 認識類 1. 3 編譯與調試程序 習題1 第2 章 基本數據類型和表達式 2. 1 C++ 語素 2. 1. 1 標識符 2. 1. 2 關鍵字 2. 2 基本數據類型 2. 2. 1 內置類型 2. 2. 2 常量 2. 3 對像 2. 3. 1 對像的定義和初始化 2. 3. 2 對像的聲明 2. 3. 3 作用域和生命期 2. 4 常量修飾符和類型推導 2. 4. 1 const 修飾符 2. 4. 2 constexpr 和常量表達式 2. 4. 3 類型推導 2. 5 表達式 2. 5. 1 基本知識 2. 5. 2 算術運算符 2. 5. 3 賦值運算符 2. 5. 4 自增和自減運算符 2. 5. 5 邏輯和關繫運算符 2. 5. 6 逗號運算符 2. 5. 7 條件運算符 2. 5. 8 sizeof 運算符 2. 5. 9 位運算符 2. 5. 10 求值次序 2. 6 類型轉換 2. 6. 1 隱式類型轉換 2. 6. 2 顯式類型轉換 習題2 第3 章 語句控制結構 3. 1 語句 3. 1. 1 空語句 3. 1. 2 復合語句 3. 1. 3 控制結構語句作用域 3. 2 分支結構 3. 2. 1 if 語句 3. 2. 2 switch 語句 3. 3 循環結構 3. 3. 1 while 語句 3. 3. 2 do while 語句 3. 3. 3 for 語句 3. 3. 4 循環語句的選擇 3. 4 跳轉語句 3. 4. 1 break 語句 3. 4. 2 continue 語句 3. 5 嵌套結構和應用實例 習題3 第4 章 復合類型、string 和vector 4. 1 引用 4. 1. 1 引用const 對像 4. 1. 2 auto 和引用 4. 1. 3 decltype 和引用 4. 1. 4 右值引用 4. 2 指針 4. 2. 1 指針的定義 4. 2. 2 改變指向 4. 2. 3 const 和指針 4. 2. 4 類型推導和指針 4. 2. 5 void 指針 4. 2. 6 多級指針 4. 2. 7 引用和指針 4. 3 數組 4. 3. 1 數組的定義和初始化 4. 3. 2 訪素 4. 3. 3 多維數組 4. 4 指針和數組 4. 4. 1 指針指向數組 4. 4. 2 利用指針訪問數組 4. 5 string 類型 4. 5. 1 string 類型常用操作 4. 5. 2 C 風格字符串 4. 6 vector 類型 4. 6. 1 定義和初始化vector對像 4. 6. 2 vector 類型常用操作 4. 6. 3 使用迭代器 4. 7 枚舉類型 4. 7. 1 定義枚舉類型 4. 7. 2 使用枚舉類型 習題4 第5 章 函數 5. 1 認識函數 5. 1. 1 定義函數 5. 1. 2 調用函數 5. 1. 3 調用規則 5. 1. 4 無參列表和void 返回類型 5. 1. 5 函數聲明 5. 2 局部對像和全局對像 5. 2. 1 存儲周期 5. 2. 2 局部對像 5. 2. 3 全局對像 5. 3 參數傳遞 5. 3. 1 值傳遞 5. 3. 2 引用傳遞 5. 3. 3 const 形參 5. 3. 4 數組形參 5. 4 返回值類型 5. 4. 1 無值返回 5. 4. 2 有值返回 5. 5 函數重載和特殊用途的函數 5. 5. 1 函數重載 5. 5. 2 默認參數 5. 5. 3 內聯函數 5. 5. 4 constexpr 函數 5. 6 函數指針和lambda 表達式 5. 6. 1 函數指針 5. 6. 2 lambda 表達式 5. 7 遞歸調用 5. 7. 1 遞推和回歸 5. 7. 2 遞歸和循環 5. 8 編譯預處理和多文件結構 5. 8. 1 宏定義 5. 8. 2 條件編譯 5. 8. 3 多文件結構 習題5 第6 章 類 6. 1 類的定義 6. 1. 1 定義一個類 6. 1. 2 定義和使用成員函數 6. 1. 3 定義輔助函數 6. 1. 4 訪問控制 6. 1. 5 6. 2 構造函數與析構函數 6. 2. 1 默認構造函數 6. 2. 2 復制構造函數 6. 2. 3 析構函數 6. 3 運算符重載 6. 3. 1 基本概念 6. 3. 2 重載原則 6. 3. 3 輸入和輸出運算符 6. 3. 4 遞增和遞減運算符 6. 3. 5 函數調用運算符 6. 3. 6 類型轉換運算符 6. 4 靜態成員 6. 4. 1 聲明靜態成員 6. 4. 2 使用靜態成員 6. 5 類成員指針 6. 5. 1 數據成員指針 6. 5. 2 成員函數指針 習題6 第2 部分 設 計 篇 第7 章 模板與泛型編程 7. 1 函數模板 7. 1. 1 定義函數模板 7. 1. 2 實例化函數模板 7. 1. 3 模板參數類型 7. 1. 4 類成員模板 7. 1. 5 可變參函數模板 7. 2 類模板 7. 2. 1 成員函數定義 7. 2. 2 實例化類模板 7. 2. 3 默認模板參數 7. 3 排序與查找 7. 3. 1 排序算法 7. 3. 2 二分查找算法 習題7 第8 章 動態內存與數據結構 8. 1 動態內存 8. 1. 1 創建動態對像 8. 1. 2 釋放動態內存 8. 1. 3 內存洩漏 8. 1. 4 智能指針 8. 1. 5 動態數組 8. 2 拷貝控制淤 8. 2. 1 簡單字符串類 8. 2. 2 復制與賦值 8. 2. 3 移動對像 8. 3 線性鏈表 8. 3. 1 鏈表表示 8. 3. 2 插入操作 8. 3. 3 刪除操作 8. 3. 4 清空鏈表 8. 3. 5 打印鏈表 8. 3. 6 拷貝控聲明 8. 4 鏈棧 8. 4. 1 鏈棧表示與操作 8. 4. 2 簡單計算器 8. 5 二叉樹 8. 5. 1 二叉樹的概念和表示 8. 5. 2 創建二叉搜索樹 8. 5. 3 遍歷操作 8. 5. 4 搜索操作 8. 5. 5 銷毀操作 8. 5. 6 拷貝控聲明 習題8 第9 章 繼承與多態 9. 1 繼承 9. 1. 1 定義基類 9. 1. 2 定義派生類 9. 1. 3 訪問控制 9. 1. 4 類型轉換 9. 2 構造、拷貝控制與繼承 9. 2. 1 派生類對像的構造 9. 2. 2 拷貝控制與繼承 9. 3 虛函數與多態性 9. 3. 1 虛函數 9. 3. 2 動態綁定 9. 3. 3 抽像類 9. 3. 4 繼承與組合 9. 3. 5 再探計算器 習題9 第10 章 簡單輸入輸出 10. 1 基本知識 10. 1. 1 IO 類對像 10. 1. 2 條件狀態 10. 1. 3 刷新緩衝區 10. 2 標準輸入輸出 10. 2. 1 字符數據的輸入 10. 2. 2 格式化控制 10. 3 文件輸入輸出與string 流 10. 3. 1 使用文件流對像 10. 3. 2 文件模式 10. 3. 3 string 流 習題10 第11 章 標準模板庫 11. 1 迭代器 11. 1. 1 實現Find 函數模板 11. 1. 2 使用迭代器 11. 2 容器 11. 2. 1 容器概述 11. 2. 2 順序容器 11. 2. 3 關聯容器 11. 2. 4 高效使用容器 11. 3 泛型算法 11. 3. 1 算法概述 11. 3. 2 向算法傳遞函數 11. 3. 3 參數綁定 11. 3. 4 使用function 習題11 第12 章 工具與技術 12. 1 命名空間 12. 1. 1 定義命名空間 12. 1. 2 使用命名空間 12. 2 異常處理 12. 2. 1 拋出異常 12. 2. 2 檢測異常 12. 2. 3 捕獲異常 12. 2. 4 使用標準庫異常類 12. 3 多重繼承與虛繼承 12. 3. 1 多重繼承 12. 3. 2 虛繼承 12. 4 嵌套類 12. 4. 1 二維數組類 12. 4. 2 通用計算器 12. 5 運行時類型識別 12. 5. 1 dynamic_cast 運算符 12. 5. 2 typeid 運算符 12. 6 union 類型 12. 6. 1 定義union 類型 12. 6. 2 使用union 類型 12. 7 標準庫特殊工具 12. 7. 1 tuple 類型 12. 7. 2 bitset 類型 12. 7. 3 日期和時間 習題12 附錄A ASCII 字符表附錄B 運算符優先級表附錄C 標準庫算法參考文獻