C++ 入門指南 4.01
目錄
C++ 為熱門的程式語言之一,中英文學習資源都琳瑯滿目,無論是網路上免費的或是書店裡販賣的書籍,讀者可以找到各式各類的教材,入門書籍方面,惟獨缺少直接帶領讀者學習開發軟體的教材,此亦本書的設計理念,希望藉由帶領讀者開發簡單的應用軟體,以此帶給讀者完整的軟體開發觀念。
本書分成三大部分,每一部分又分成 8 到 13 個單元
- 基礎篇
- 軟體開發篇
- GUI 篇
由基礎篇 13 個單元開始,帶領讀者使用跨平台的編譯器 GCC 編譯程式,並依序漸進熟悉 C++ 的基本語法後,進入軟體開發篇 11 個單元,由常見的 MVC 開發模式先發展 M 的部分,也就是計算核心 Encrypt 類別,接著進入 GUI 篇 8 個單元發展 V 跟 C 的部分,使用 Qt Creator 及 QML 設計圖形介面,最後將 M 、 V 、 C 組合成完整的應用軟體。
這樣的教學模式,其重點在引導讀者開發簡單的圖形介面程式,以期讀者能自動自發多做程式練習,所以本書特別適合高中到大一或程式設計的完全新手,至於語言細節或是程式設計的技巧,您可讀完本書最後一個「單元 32 - 下一步」後,再去找尋第二本書到第三本書繼續深入研究 C++ 語言,因此本書是提供給完全初學者的第一本書,而非最後一本書。
電子書版本會隨 C++ 及 Qt 版本進行更新,目前版本介紹主要是 C++11 及 Qt 6.2 。
從一開始整理資料、打字、編輯、校稿等等完全由作者獨力進行,計有 3 篇、 32 個單元, 12 個附錄, 159 個術語及繁簡英對照, 37 個完整程式範例、 1 個完整的 Qt Quick 專案, 321 個練習及 295 個練習參考程式,寫書就像開發大型軟體一樣難免會有 bug (怕有不少 bug 說),若您發現本書的任何錯誤,敬請利用以下網頁回報
本書的主要參考資料有
- Ivor Horton's Beginning C++: The Complete Language (蔡明志譯本)
- C++ Primer 4/e (侯捷譯本)
- How to Think Like a Computer Scientist: C++ Version
另外知名的 cppreference.com
您不一定要購買這本電子書,若您願意花一點錢購買這份 V4.01 的電子書,感謝您以行動贊助作者持續開發程式語言教材,謝謝您 ^_^
更新資訊
本次更新主要為更換封面與訂正內容,調整程式碼字型到正常大小,以及將內文程式碼加上淺灰色背景。
更新資訊
訂正內容及重寫「關於本書」。
更新資訊
Qt 更新為 5.12 , Qt Creator 為 4.8.0 ,另外更新本書 CSS 及將範例改在 Windows 10 的 Visual Studio Code 執行及截圖,使用 Visual Studio Code 的版本為 1.30.2 。
更新資訊
Qt 更新為 6.2 , Qt Creator 為 7 ,同時改為建立 Qt Quick 專案及 QML ,並提供寫程式工具 Geany 、 Qt Creator 及命令列編譯的介紹教學。
張凱慶
2022/06/18
- 基礎篇
- 軟體開發篇
- GUI 篇
- 範例程式篇
- 附錄
- 練習參考篇
- 練習 1.1 參考程式 - 練習寫程式
- 練習 1.2 參考程式 - 練習修改程式
- 練習 1.3 參考程式 - 練習修改程式
- 練習 1.4 參考程式 - 練習修改程式
- 練習 1.5 參考程式 - 練習修改程式
- 練習 1.6 參考程式 - 練習修改程式
- 練習 1.7 參考程式 - 練習修改程式
- 練習 1.8 參考程式 - 練習修改程式
- 練習 1.9 參考程式 - 練習修改程式
- 練習 3.1 參考程式 - 練習整數型態
- 練習 3.2 參考程式 - 練習 sizeof 運算子
- 練習 3.3 參考程式 - 練習浮點數型態
- 練習 3.4 參考程式 - 練習 sizeof 運算子
- 練習 3.5 參考程式 - 練習字元型態
- 練習 3.6 參考程式 - 練習 sizeof 運算子
- 練習 3.7 參考程式 - 練習布林型態
- 練習 3.8 參考程式 - 練習 sizeof 運算子
- 練習 3.9 參考程式 - 練習印三角形
- 練習 3.10 參考程式 - 練習印三角形
- 練習 4.1 參考程式 - 練習指標變數
- 練習 4.2 參考程式 - 練習反參考運算子
- 練習 4.3 參考程式 - 練習取值運算子
- 練習 4.4 參考程式 - 練習參考變數
- 練習 4.5 參考程式 - 練習參考變數
- 練習 4.6 參考程式 - 練習字串與指標
- 練習 4.7 參考程式 - 練習字串與指標
- 練習 4.8 參考程式 - 練習字串與指標
- 練習 4.9 參考程式 - 練習字串與指標
- 練習 4.10 參考程式 - 練習字串與指標
- 練習 5.1 參考程式 - 練習命名使用者輸入變數
- 練習 5.2 參考程式 - 練習命名遞增整數變數
- 練習 5.3 參考程式 - 練習命名暫存整數變數
- 練習 5.4 參考程式 - 練習命名迴圈控制變數
- 練習 5.5 參考程式 - 練習命名圓周率變數
- 練習 5.6 參考程式 - 練習用數字命令變數
- 練習 5.7 參考程式 - 練習用數字當變數的起始字元
- 練習 5.8 參考程式 - 練習用底線當變數的名稱
- 練習 5.9 參考程式 - 練習用中文當變數的名稱
- 練習 5.10 參考程式 - 練習命名含有空格的變數
- 練習 6.1 參考程式 - 練習算術運算子
- 練習 6.2 參考程式 - 練習使用者輸入
- 練習 6.3 參考程式 - 練習使用者輸入
- 練習 6.4 參考程式 - 練習使用者輸入
- 練習 6.5 參考程式 - 練習命令列參數輸入
- 練習 6.6 參考程式 - 練習遞增運算子
- 練習 6.7 參考程式 - 練習遞增運算子
- 練習 6.8 參考程式 - 練習字串變數
- 練習 6.9 參考程式 - 練習三元運算子
- 練習 6.10 參考程式 - 練習使用者輸入
- 練習 6.11 參考程式 - 練習命令列參數輸入
- 練習 7.1 參考程式 - 練習 if 陳述
- 練習 7.2 參考程式 - 練習使用者輸入
- 練習 7.3 參考程式 - 練習巢狀 if-else 陳述
- 練習 7.4 參考程式 - 練習 else if 陳述
- 練習 7.5 參考程式 - 練習 switch-case 陳述
- 練習 7.6 參考程式 - 練習使用者輸入
- 練習 7.7 參考程式 - 練習 break 及 default 陳述
- 練習 7.8 參考程式 - 練習 if-else 陳述
- 練習 7.9 參考程式 - 練習 if-else 陳述
- 練習 7.10 參考程式 - 練習範圍運算子
- 練習 8.1 參考程式 - 練習 do-while 陳述
- 練習 8.2 參考程式 - 練習比較 while 與 do-while 的不同
- 練習 8.3 參考程式 - 練習寫迴圈
- 練習 8.4 參考程式 - 練習使用者輸入
- 練習 8.5 參考程式 - 練習印出等腰直角三角形
- 練習 8.6 參考程式 - 練習印出等腰直角三角形
- 練習 8.7 參考程式 - 練習使用者輸入
- 練習 8.8 參考程式 - 練習印出九九乘法表
- 練習 8.9 參考程式 - 練習 while true 迴圈
- 練習 8.10 參考程式 - 練習計算 10 的階層
- 練習 8.11 參考程式 - 練習使用者輸入
- 練習 8.12 參考程式 - 練習計算費氏數列
- 練習 8.13 參考程式 - 練習使用者輸入
- 練習 9.1 參考程式 - 練習設計兩個整數和的函數
- 練習 9.2 參考程式 - 練習設計使用者輸入的函數
- 練習 9.3 參考程式 - 練習設計整數和的函數
- 練習 9.4 參考程式 - 練習設計使用者輸入的函數
- 練習 9.5 參考程式 - 練習設計計算階層的函數
- 練習 9.6 參考程式 - 練習設計計算階層的遞迴函數
- 練習 9.7 參考程式 - 練習設計使用者輸入的函數
- 練習 9.8 參考程式 - 練習設計計算費氏數列的函數
- 練習 9.9 參考程式 - 練習設計計算費氏數列的遞迴函數
- 練習 9.10 參考程式 - 練習設計使用者輸入的函數
- 練習 10.1 參考程式 - 練習設計整數計算類別
- 練習 10.2 參考程式 - 練習設計整數計算類別
- 練習 10.3 參考程式 - 練習設計整數計算類別
- 練習 10.4 參考程式 - 練習設計整數計算類別
- 練習 10.5 參考程式 - 練習設計整數計算類別
- 練習 10.6 參考程式 - 練習設計整數計算類別
- 練習 10.7 參考程式 - 練習設計階層數類別
- 練習 10.8 參考程式 - 練習設計費氏數列類別
- 練習 10.9 參考程式 - 練習設計平面座標類別
- 練習 10.10 參考程式 - 練習設計猜數字遊戲類別
- 練習 10.11 參考程式 - 練習設計成員類別
- 練習 10.12 參考程式 - 練習設計文字類別
- 練習 10.13 參考程式 - 練習設計乒乓球類別
- 練習 10.14 參考程式 - 練習設計場景類別
- 練習 10.15 參考程式 - 練習設計遊戲類別
- 練習 11.1 參考程式 - 練習關鍵字 this
- 練習 11.2 參考程式 - 練習替整數計算類別加入存取函數與修改函數
- 練習 11.3 參考程式 - 練習替階層數類別加入存取函數與修改函數
- 練習 11.4 參考程式 - 練習替費氏數列類別加入存取函數與修改函數
- 練習 11.5 參考程式 - 練習替平面座標類別加入存取函數與修改函數
- 練習 11.6 參考程式 - 練習替猜數字遊戲類別加入存取函數與修改函數
- 練習 11.7 參考程式 - 練習替成員類別加入存取函數與修改函數
- 練習 11.8 參考程式 - 練習替文字類別加入存取函數與修改函數
- 練習 11.9 參考程式 - 練習替乒乓球類別加入存取函數與修改函數
- 練習 11.10 參考程式 - 練習替場景類別加入存取函數與修改函數
- 練習 11.11 參考程式 - 練習替遊戲類別加入存取函數與修改函數
- 練習 12.1 參考程式 - 練習設計整數計算類別的建構函數
- 練習 12.2 參考程式 - 練習設計階層類別的建構函數
- 練習 12.3 參考程式 - 練習設計費氏數列類別的建構函數
- 練習 12.4 參考程式 - 練習設計平面座標類別的建構函數
- 練習 12.5 參考程式 - 練習設計猜數字遊戲類別的建構函數
- 練習 12.6 參考程式 - 練習設計成員類別的建構函數
- 練習 12.7 參考程式 - 練習設計文字類別的建構函數
- 練習 12.8 參考程式 - 練習設計乒乓球類別的建構函數
- 練習 12.9 參考程式 - 練習設計場景類別的建構函數
- 練習 12.10 參考程式 - 練習設計遊戲類別的建構函數
- 練習 13.1 參考程式 - 練習設計整數計算類別的標頭檔
- 練習 13.2 參考程式 - 練習設計階層數類別的標頭檔
- 練習 13.3 參考程式 - 練習設計費氏數列類別的標頭檔
- 練習 13.4 參考程式 - 練習設計平面座標類別的標頭檔
- 練習 13.5 參考程式 - 練習設計猜數字遊戲的標頭檔
- 練習 13.6 參考程式 - 練習設計成員類別的標頭檔
- 練習 13.7 參考程式 - 練習設計文字類別的標頭檔
- 練習 13.8 參考程式 - 練習設計乒乓球類別的標頭檔
- 練習 13.9 參考程式 - 練習設計場景類別的標頭檔
- 練習 13.10 參考程式 - 練習設計遊戲類別的標頭檔
- 練習 14.1 參考程式 - 練習宣告陣列變數
- 練習 14.2 參考程式 - 練習陣列的字面常數
- 練習 14.3 參考程式 - 練習陣列的索引值
- 練習 14.4 參考程式 - 練習用迴圈操作陣列
- 練習 14.5 參考程式 - 練習多維陣列
- 練習 14.6 參考程式 - 練習泛型程式設計
- 練習 14.7 參考程式 - 練習標準程式庫的 typeinfo
- 練習 14.8 參考程式 - 練習標準程式庫的 typeinfo
- 練習 14.9 參考程式 - 練習標準程式庫的 typeinfo
- 練習 14.10 參考程式 - 練習標準程式庫 string 的 to_string()
- 練習 15.1 參考程式 - 練習字元陣列
- 練習 15.2 參考程式 - 練習陣列與指標
- 練習 15.3 參考程式 - 練習標準程式庫的 array
- 練習 15.4 參考程式 - 練習標準程式庫的 array
- 練習 15.5 參考程式 - 練習標準程式庫的 array
- 練習 15.6 參考程式 - 練習強制型態轉換
- 練習 15.7 參考程式 - 練習強制型態轉換
- 練習 15.8 參考程式 - 練習強制型態轉換
- 練習 15.9 參考程式 - 練習強制型態轉換
- 練習 15.10 參考程式 - 練習字串轉換成數字
- 練習 16.1 參考程式 - 練習標準程式庫的 vector
- 練習 16.2 參考程式 - 練習標準程式庫的 vector
- 練習 16.3 參考程式 - 練習標準程式庫的 vector
- 練習 16.4 參考程式 - 練習標準程式庫的 vector
- 練習 16.5 參考程式 - 練習標準程式庫的 vector
- 練習 16.6 參考程式 - 練習產生擬隨機數
- 練習 16.7 參考程式 - 練習產生擬隨機數
- 練習 16.8 參考程式 - 練習產生擬隨機數
- 練習 16.9 參考程式 - 練習產生擬隨機數
- 練習 16.10 參考程式 - 練習產生擬隨機數
- 練習 17.1 參考程式 - 練習標準程式庫的 vector
- 練習 17.2 參考程式 - 練習標準程式庫的 vector
- 練習 17.3 參考程式 - 練習標準程式庫的 vector
- 練習 17.4 參考程式 - 練習標準程式庫的 vector
- 練習 17.5 參考程式 - 練習標準程式庫的 vector
- 練習 17.6 參考程式 - 練習標準程式庫 algorithm 的攪亂順序函數
- 練習 17.7 參考程式 - 練習標準程式庫 algorithm 的攪亂順序函數
- 練習 17.8 參考程式 - 練習標準程式庫 algorithm 的攪亂順序函數
- 練習 17.9 參考程式 - 練習標準程式庫 algorithm 的攪亂順序函數
- 練習 17.10 參考程式 - 練習標準程式庫 algorithm 的攪亂順序函數
- 練習 18.1 參考程式 - 練習標準程式庫的 map
- 練習 18.2 參考程式 - 練習標準程式庫的 map
- 練習 18.3 參考程式 - 練習標準程式庫的 map
- 練習 18.4 參考程式 - 練習標準程式庫的 map
- 練習 18.5 參考程式 - 練習標準程式庫的 map
- 練習 18.6 參考程式 - 練習標準程式庫的時間相關程式
- 練習 18.7 參考程式 - 練習標準程式庫的時間相關程式
- 練習 18.8 參考程式 - 練習標準程式庫的時間相關程式
- 練習 18.9 參考程式 - 練習標準程式庫的時間相關程式
- 練習 18.10 參考程式 - 練習標準程式庫的時間相關程式
- 練習 19.1 參考程式 - 練習標準程式庫的 map
- 練習 19.2 參考程式 - 練習標準程式庫的 map
- 練習 19.3 參考程式 - 練習標準程式庫的 map
- 練習 19.4 參考程式 - 練習標準程式庫的 map
- 練習 19.5 參考程式 - 練習標準程式庫的 map
- 練習 19.6 參考程式 - 練習標準程式庫的 printf()
- 練習 19.7 參考程式 - 練習格式化字串
- 練習 19.8 參考程式 - 練習格式化字串
- 練習 19.9 參考程式 - 練習格式化字串
- 練習 19.10 參考程式 - 練習格式化字串
- 練習 20.1 參考程式 - 練習標準程式庫的 set
- 練習 20.2 參考程式 - 練習標準程式庫的 set
- 練習 20.3 參考程式 - 練習標準程式庫的 set
- 練習 20.4 參考程式 - 練習標準程式庫的 set
- 練習 20.5 參考程式 - 練習標準程式庫的 set
- 練習 20.6 參考程式 - 練習標準程式庫的數學相關程式
- 練習 20.7 參考程式 - 練習標準程式庫的數學相關程式
- 練習 20.8 參考程式 - 練習標準程式庫的數學相關程式
- 練習 20.9 參考程式 - 練習標準程式庫的數學相關程式
- 練習 20.10 參考程式 - 練習標準程式庫的數學相關程式
- 練習 21.1 參考程式 - 練習標準程式庫的 deque
- 練習 21.2 參考程式 - 練習標準程式庫的 unordered_map
- 練習 21.3 參考程式 - 練習標準程式庫的 unordered_set
- 練習 21.4 參考程式 - 練習標準程式庫的 priority_queue
- 練習 21.5 參考程式 - 練習標準程式庫的 list
- 練習 21.6 參考程式 - 練習標準程式庫的數學相關程式
- 練習 21.7 參考程式 - 練習標準程式庫的數學相關程式
- 練習 21.8 參考程式 - 練習標準程式庫的數學相關程式
- 練習 21.9 參考程式 - 練習標準程式庫的數學相關程式
- 練習 21.10 參考程式 - 練習標準程式庫的數學相關程式
- 練習 22.1 參考程式 - 練習命令列參數
- 練習 22.2 參考程式 - 練習命令列參數
- 練習 22.3 參考程式 - 練習呼叫系統指令
- 練習 22.4 參考程式 - 練習切換工作路徑
- 練習 22.5 參考程式 - 練習建立新路徑
- 練習 22.6 參考程式 - 練習移動檔案
- 練習 22.7 參考程式 - 練習印出現在時間
- 練習 22.8 參考程式 - 練習印出現在月曆
- 練習 22.9 參考程式 - 練習印出檔案內容
- 練習 22.10 參考程式 - 練習印出目前路徑
- 練習 23.1 參考程式 - 練習使用者輸入
- 練習 23.2 參考程式 - 練習使用者輸入
- 練習 23.3 參考程式 - 練習使用者輸入
- 練習 23.4 參考程式 - 練習檔案處理
- 練習 23.5 參考程式 - 練習檔案處理
- 練習 23.6 參考程式 - 練習使用者輸入與檔案處理
- 練習 23.7 參考程式 - 練習判斷檔案是否存在
- 練習 23.8 參考程式 - 練習取得檔案大小
- 練習 23.9 參考程式 - 練習判斷是否為目錄
- 練習 23.10 參考程式 - 練習判斷檔案有沒有內容
- 練習 24.1 參考程式 - 練習標準程式庫的 string
- 練習 24.2 參考程式 - 練習標準程式庫的 string
- 練習 24.3 參考程式 - 練習標準程式庫的 string
- 練習 24.4 參考程式 - 練習標準程式庫的 string
- 練習 24.5 參考程式 - 練習標準程式庫的 string
- 練習 24.6 參考程式 - 練習標準程式庫的 string
- 練習 24.7 參考程式 - 練習標準程式庫的 string
- 練習 24.8 參考程式 - 練習標準程式庫的 string
- 練習 24.9 參考程式 - 練習標準程式庫的 string
- 練習 24.10 參考程式 - 練習標準程式庫的 string
- 練習 26.1 參考程式 - 練習 QML 的 Rectangle
- 練習 26.2 參考程式 - 練習 QML 的 Rectangle
- 練習 26.3 參考程式 - 練習 QML 的 Flow
- 練習 26.4 參考程式 - 練習 QML 的 Column
- 練習 26.5 參考程式 - 練習 QML 的 Row
- 練習 26.6 參考程式 - 練習 QML 的 Column 及 Row
- 練習 26.7 參考程式 - 練習 QML 的 Grid
- 練習 26.8 參考程式 - 練習 QML 的 StackView
- 練習 26.9 參考程式 - 練習 QML 的 SwipeView
- 練習 26.10 參考程式 - 練習 QML 的 ScrollView
- 練習 27.1 參考程式 - 練習 QML 的 CheckBox
- 練習 27.2 參考程式 - 練習 QML 的 DelayButton
- 練習 27.3 參考程式 - 練習 QML 的 RadioButton
- 練習 27.4 參考程式 - 練習 QML 的 RoundButton
- 練習 27.5 參考程式 - 練習 QML 的 Switch
- 練習 27.6 參考程式 - 練習 QML 的 ToolBar
- 練習 27.7 參考程式 - 練習 QML 的 Popup
- 練習 27.8 參考程式 - 練習 QML 的 ToolTip
- 練習 27.9 參考程式 - 練習 QML 的 BusyIndicator
- 練習 27.10 參考程式 - 練習 QML 的 ProgressBar
- 練習 28.1 參考程式 - 練習 QML 的 ComboBox
- 練習 28.2 參考程式 - 練習 QML 的 Dial
- 練習 28.3 參考程式 - 練習 QML 的 RangeSlider
- 練習 28.4 參考程式 - 練習 QML 的 Slider
- 練習 28.5 參考程式 - 練習 QML 的 TextArea
- 練習 28.6 參考程式 - 練習 QML 的 TextField
- 練習 28.7 參考程式 - 練習 QML 的 Tumbler
- 練習 28.8 參考程式 - 練習 QML 的 Drawer
- 練習 28.9 參考程式 - 練習 QML 的 MenuSeparator
- 練習 28.10 參考程式 - 練習 QML 的 ToolSeparator
- 練習 29.1 參考程式 - 練習 QML 的 Dialog
- 練習 29.2 參考程式 - 練習 QML 的 Button
- 練習 29.3 參考程式 - 練習 QML 的 Button
- 練習 29.4 參考程式 - 練習 QML 的 MouseArea
- 練習 29.5 參考程式 - 練習設計計算機外觀
- 練習 29.6 參考程式 - 練習設計小時鐘外觀
- 練習 29.7 參考程式 - 練習設計圖片檢視器外觀
- 練習 29.8 參考程式 - 練習設計猜數字遊戲外觀
- 練習 29.9 參考程式 - 練習設計匯率換算工具外觀
- 練習 29.10 參考程式 - 練習設計文字工具外觀
- 練習 30.1 參考程式 - 練習發展猜數字遊戲計算核心
- 練習 30.2 參考程式 - 練習發展猜數字遊戲計算核心
- 練習 30.3 參考程式 - 練習發展猜數字遊戲計算核心
- 練習 30.4 參考程式 - 練習發展猜數字遊戲計算核心
- 練習 30.5 參考程式 - 練習發展猜數字遊戲計算核心
- 練習 30.6 參考程式 - 練習發展猜數字遊戲計算核心
- 練習 30.7 參考程式 - 練習發展猜數字遊戲計算核心
- 練習 30.8 參考程式 - 練習發展猜數字遊戲計算核心
- 練習 30.9 參考程式 - 練習發展猜數字遊戲計算核心
- 練習 30.10 參考程式 - 練習發展猜數字遊戲計算核心
- 練習 30.11 參考程式 - 練習發展猜數字遊戲計算核心
- 練習 31.1 參考程式 - 練習發展猜數字遊戲計算核心
- 練習 31.2 參考程式 - 練習發展猜數字遊戲計算核心
- 練習 31.3 參考程式 - 練習發展猜數字遊戲計算核心
- 練習 31.4 參考程式 - 練習發展猜數字遊戲計算核心
- 練習 31.5 參考程式 - 練習發展猜數字遊戲計算核心
- 練習 31.6 參考程式 - 練習發展猜數字遊戲計算核心
- 練習 31.7 參考程式 - 練習猜數字遊戲的 Qt Quick 專案
- 練習 31.8 參考程式 - 練習猜數字遊戲的 Qt Quick 專案
- 練習 31.9 參考程式 - 練習猜數字遊戲的 Qt Quick 專案
- 練習 31.10 參考程式 - 練習猜數字遊戲的 Qt Quick 專案
本書所有範例程式 - 下載連結。
相關教學影片