Learn C++ Programming by Refactoring

Liu Pang-feng

  • PublishedJune, 2023
  • Binding平裝 / 26*19 / 780pages / 單色(黑) / 中文
  • Publisher國立臺灣大學出版中心
  • SeriesEducation-Textbooks
  • ISBN978-986-350-712-3
  • GPN1011200237
  • Price NT$1000
  • ebook
    KOBO / Readmoo / TAAZE / books.com.tw /
  • Paper Books San Min Books / wunan / books.com.tw / National Books / iRead / eslite / TAAZE /
  • EISBN(PDF)978-986-350-740-6
  • EISBN(EPub)978-986-350-7413
Learn C++ Programming by Refactoring is a specifically designed textbook for high school or college students who want to learn and excel in C++11 programming. With clear and concise instructions, numerous examples, phrases, learning points, and style tips, this book emphasizes the concept of "refactoring," guiding beginners through iterative rewriting, highlighting the principles, mechanisms and its applications. 
See more supplementary materials (assignments & examples) at https://sites.google.com/view/cplusplusrefactor

Pang Feng Liu is a Micro Chair Professor of the Department of Computer Science and Information Engineering at National Taiwan University. 

前言
關於「批改娘」
1 程式設計
 1.1 程式
 1.2 設計
2 基本程式架構
 2.1 程式骨架
 2.2 變數
 2.3 輸出
 2.4 輸入
3 運算
 3.1 指定
 3.2 運算
4 判斷
 4.1 if 判斷
 4.2 判斷式值
 4.3 switch 判斷
5 迴圈
 5.1 while 迴圈
 5.2 for 迴圈
 5.3 do while 迴圈
 5.4 break
 5.5 continue
 5.6 巢狀迴圈
6 標準輸入輸出
 6.1 輸入資料
 6.2 輸出訊息
 6.3 多變數輸出入
 6.4 格式輸出入操控子
7 陣列
 7.1 屬性
 7.2 一維陣列
 7.3 assert
 7.4 一維陣列應用
 7.5 多維陣列
 7.6 多維陣列應用
8 浮點數
 8.1 宣告
 8.2 位元組數
 8.3 輸出與輸入
 8.4 類別轉換
 8.5 泰勒展開式
 8.6 開平方根
9 函式
 9.1 呼叫函式
 9.2 定義有回傳值的函式
 9.3 定義無回傳值的函式
 9.4 多個參數的函式
 9.5 參數傳遞
 9.6 生命遊戲
 9.7 鏡子房間
 9.8 井字遊戲
 9.9 結語
10 指標
  10.1 指標變數
  10.2 指標參數傳遞
  10.3 指標與陣列
  10.4 指標回傳值
  10.5 用途與限制
11 參考類別
  11.1 宣告及初始
  11.2 參數傳遞
  11.3 參考回傳值
  11.4 參考應用
12 字元
  12.1 宣告
  12.2 輸出
  12.3 字元常數
  12.4 輸入
  12.5 常用函式
13 宣告修飾
  13.1 修飾大小
  13.2 有號及無號
  13.3 C++11 標準類別
  13.4 常數
  13.5 靜態宣告
  13.6 auto
14 字串
  14.1 宣告及輸出入
  14.2 串接
  14.3 字串常數
  14.4 操作函式
  14.5 C-style字串
  14.6 簡易BASIC解譯器
15 位元運算
  15.1 宣告
  15.2 檢查位元
  15.3 位元且
  15.4 位元或
  15.5 位元互斥或
  15.6 位元互補
  15.7 位元數目排序
16 結構
  16.1 結構宣告
  16.2 結構欄位
  16.3 表列初始
  16.4 結構指標
  16.5 記憶體位址
  16.6 參數傳遞
  16.7 標頭檔
  16.8 生命遊戲
  16.9 鏡子房間
  16.10 繞圈
  16.11 位元數目排序
  16.12 井字遊戲
  16.13 簡易BASIC解譯器
  16.14 結語
17 模組化
  17.1 vector
  17.2 生命遊戲
  17.3 井字遊戲
  17.4 鏡子房間
  17.5 繞圈
  17.6 BASIC
18 類別
  18.1 井字遊戲
  18.2 權限
  18.3 類別與結構
  18.4 建構子
  18.5 常數成員函式
  18.6 類別與實體
  18.7 類別成員
  18.8 鏡子房間
  18.9 繞圈
  18.10 生命遊戲
  18.11 BASIC
  18.12 有理數
19 遞迴
  19.1 定義
  19.2 費伯納西數
  19.3 計算時間
  19.4 constexpr
  19.5 最大公因數
  19.6 遞迴實作
  19.7 三位撇節法
  19.8 河內塔
  19.9 八后問題
  19.10 老鼠走迷宮
  19.11 數獨
  19.12 疊紙片
  19.13 效能考量
20 繼承
  20.1 基礎類別
  20.2 多載
  20.3 繞圈
  20.4 老鼠走迷宮
  20.5 數獨
  20.6 井字遊戲
  20.7 生命遊戲
  20.8 鏡子房間
21 運算子
  21.1 運算子函式
  21.2 位元數目排序
  21.3 有理數
  21.4 比較1位元個數
  21.5 lambda function
  21.6 位元數目排序重構
  21.7 頂層運算子函式
  21.8 錯誤處理
  21.9 隱藏類別轉換
  21.10 explicit
22 鏈結序列
  22.1 資料結構
  22.2 記憶體配置
  22.3 名稱空間
  22.4 鏈結序列
  22.5 鏈結序列遞迴實作
  22.6 排序鏈結序列
  22.7 鏈結序列範例
  22.8 堆疊
23 移動與深度複製
  23.1 指標物件問題
  23.2 移動
  23.3 深度複製
  23.4 建構子
24 智慧指標
  24.1 共享指標
  24.2 唯一指標
25 二元樹
  25.1 節點類別
  25.2 二元樹
  25.3 二元搜尋樹
  25.4 重建二元樹
  25.5 二元樹交集及聯集
26 多型與虛擬函式
  26.1 函式綁定
  26.2 多型
  26.3 BASIC
27 檔案處理
  27.1 開啟與關閉檔案
  27.2 標準檔案指標
  27.3 文字檔案處理
  27.4 二進制檔案處理
  27.5 移動讀寫位置
  27.6 EOF
28 運算子及多載
  28.1 運算子
  28.2 二元樹交集聯集
  28.3 函數
  28.4 檔案輸入
29 模板
  29.1 類別模板
  29.2 函式模板
  29.3 別名模板
30 前置處理
  30.1 引入
  30.2 定義
  30.3 條件編譯
  30.4 巨集函數
  30.5 #、LINE、FILE
  30.6 ##
  30.7 應用
31 不想教的東西
  31.1 goto
  31.2 全域變數
  31.3 多重繼承
  31.4 保護及私有繼承
  31.5 朋友類別及函式
  31.6 輸出格式
 31.7 指標技巧
 31.8 修改記憶體
 31.9 征服銀河系
徵引書目
Index