《C++從入門到精通(第4版)》從初學者的角度出發,以通俗易懂的語言,豐富多彩的實例,詳細講解了C++的基礎知識。本書包括4篇18章:第1篇是基礎知識,包括緒論,數據類型,表達式與語句,條件判斷語句,循環語句,函式,數組、指針和引用,構造數據類型;第2篇是核心技術,包括面向對象編程、類和對象、繼承與派生;第3篇是高級套用,包括模板、標準模板庫、RTTI與異常處理、程式調試、檔案操作、網路通信;第4篇是項目實戰,結合人事考勤管理系統,依照軟體工程的開發流程,講述如何進行實際開發。
基本介紹
- 書名:《C++從入門到精通(第4版)》
- 作者:明日科技
- ISBN:9787302535836
- 類別:程式語言與程式設計
- 頁數:512
- 定價:79.8
- 出版社:清華大學出版社
- 出版時間:2019.10.01
- 裝幀:平裝
- 開本:16
內容簡介
作者介紹
前言引言
書籍目錄
第1章 緒論 2
視頻講解:1小時18分鐘
1.1 C 歷史背景 3
1.1.1 20世紀*偉大的發明 3
1.1.2 C 發展歷程 3
1.1.3 C 中的傑出人物 4
1.2 常用開發環境 5
1.2.1 VisualC 6.0 5
1.2.2 VisualStudio2017 6
1.2.3 GCC/G 7
1.2.4 Dev-C 7
1.2.5 Eclipse 8
1.3 認知C 程式代碼 8
1.4 C 工程項目檔案 9
1.5 使用VisualC 6.0創建程式 10
1.6 編譯與連線過程 13
1.7 C 的特點 16
1.8 小結 16
第2章 數據類型 17
視頻講解:1小時25分鐘
2.1 第*個C 程式 18
2.1.1 #include指令 18
2.1.2 注釋 18
2.1.3 main函式 19
2.1.4 函式體 19
2.1.5 函式返回值 19
2.2 常量及符號 19
2.2.1 整型常量 20
2.2.2 實型常量 21
2.2.3 字元常量 21
2.2.4 字元串常量 22
2.2.5 其他常量 23
2.3 變數 23
2.3.1 標識符 23
2.3.2 變數與變數聲明 24
2.3.3 整型變數 24
2.3.4 實型變數 25
2.3.5 變數賦值 25
2.3.6 變數賦初值 26
2.3.7 字元變數 26
2.4 常用數據類型 27
2.4.1 定義數值類型 28
2.4.2 字元類型 30
2.4.3 布爾類型 30
2.5 數據輸入與輸出 30
2.5.1 控制台螢幕 30
2.5.2 C 語言中的流 31
2.5.3 流操作的控制 33
2.6 小結 40
2.7 實踐與練習 40
第3章 表達式與語句 41
視頻講解:55分鐘
3.1 運算符 42
3.1.1 算術運算符 42
3.1.2 關係運算符 43
3.1.3 邏輯運算符 44
3.1.4 賦值運算符 45
3.1.5 位運算符 46
3.1.6 移位運算符 47
3.1.7 sizeof運算符 50
3.1.8 條件運算符 50
3.1.9 逗號運算符 50
3.2 結合性和優先權 51
3.3 表達式 52
3.3.1 算術表達式 53
3.3.2 關係表達式 53
3.3.3 條件表達式 53
3.3.4 賦值表達式 53
3.3.5 邏輯表達式 53
3.3.6 逗號表達式 54
3.3.7 表達式中的類型轉換 55
3.4 語句 57
3.5 判斷左值與右值 58
3.6 小結 59
3.7 實踐與練習 59
第4章 條件判斷語句 60
視頻講解:35分鐘
4.1 決策分支 61
4.2 判斷語句 62
4.2.1種形式的判斷語句 62
4.2.2 第二種形式的判斷語句 63
4.2.3 第三種形式的判斷語句 65
4.3 使用條件運算符進行判斷 67
4.4 switch語句 68
4.5 判斷語句的嵌套 72
4.6 小結 74
4.7 實踐與練習 74
第5章 循環語句 75
視頻講解:55分鐘
5.1 while循環 76
5.2 do...while循環 77
5.3 while與do…while比較 79
5.4 for循環語句 80
5.5 循環控制 84
5.5.1 控制循環的變數 84
5.5.2 break語句 85
5.5.3 continue語句 86
5.5.4 goto語句 87
5.6 循環嵌套 88
5.7 循環套用實例 90
5.7.1 阿姆斯壯數 90
5.7.2 巴斯卡三角形 91
5.7.3 對輸入的分數進行排名 92
5.8 小結 93
5.9 實踐與練習 94
第6章 函式 95
視頻講解:1小時14分鐘
6.1 函式概述 96
6.1.1 函式的定義 96
6.1.2 函式的聲明 96
6.2 函式參數及返回值 97
6.2.1 返回值 97
6.2.2 空函式 98
6.2.3 形參與實參 99
6.2.4 默認參數 99
6.2.5 可變參數 101
6.3 函式調用 102
6.3.1 傳值調用 102
6.3.2 嵌套調用 104
6.3.3 遞歸調用 105
6.4 變數作用域 108
6.5 重載函式 109
6.6 內聯函式 110
6.7 變數的存儲類別 111
6.7.1 auto變數 112
6.7.2 靜態變數 113
6.7.3 register變數 115
6.7.4 extern變數 115
6.8 小結 116
6.9 實踐與練習 116
第7章 數組、指針和引用 117
視頻講解:1小時27分鐘
7.1 一維數組 118
7.1.1 一維數組的聲明 118
7.1.2 一維數組元素的引用 118
7.1.3 一維數組的初始化 119
7.2 二維數組 120
7.2.1 二維數組的聲明 120
7.2.2 二維數組元素的引用 121
7.2.3 二維數組的初始化 121
7.3 字元數組 124
7.4 指針 131
7.4.1 變數與指針 131
7.4.2 指針運算符和取地址運算符 134
7.4.3 指針運算 136
7.4.4 指向空的指針與空類型指針 138
7.4.5 指向常量的指針與指針常量 139
7.5 指針與數組 140
7.5.1 數組的存儲 140
7.5.2 指針與一維數組 141
7.5.3 指針與二維數組 143
7.5.4 指針與字元數組 148
7.6 指針在函式中的套用 150
7.6.1 傳遞地址 150
7.6.2 指向函式的指針 152
7.6.3 空指針調用函式 153
7.6.4 從函式中返回指針 154
7.7 指針數組 155
7.8 安全使用指針 158
7.8.1 記憶體分配 158
7.8.2 記憶體安全 160
7.9 引用 163
7.9.1 引用概述 163
7.9.2 使用引用傳遞參數 166
7.9.3 指針傳遞參數 167
7.9.4 數組做函式參數 168
7.10 小結 170
7.11 實踐與練習 171
第8章 構造數據類型 172
視頻講解:59分鐘
8.1 結構體 173
8.1.1 結構體定義 173
8.1.2 結構體變數 173
8.1.3 結構體成員及初始化 174
8.1.4 結構體的嵌套 176
8.1.5 結構體大小 178
8.2 重命名數據類型 180
8.3 結構體與函式 182
8.3.1 結構體變數做函式參數 182
8.3.2 結構體指針做函式參數 183
8.4 結構體數組 184
8.4.1 結構體數組聲明與引用 184
8.4.2 指針訪問結構體數組 185
8.5 共用體 186
8.5.1 共用體的定義與聲明 187
8.5.2 共用體的大小 188
8.5.3 共用體的特點 189
8.6 枚舉類型 189
8.6.1 枚舉類型的聲明 189
8.6.2 枚舉類型變數 190
8.6.3 枚舉類型的運算 191
8.7 自定義數據類型 193
8.8 異常處理 194
8.8.1 拋出異常 194
8.8.2 捕獲異常 196
8.8.3 異常匹配 199
8.8.4 標準異常 201
8.9 使用宏定義替換複雜的數據 202
8.10 小結 205
8.11 實踐與練習 205
第2篇 核心技術
第9章 面向對象編程 207
視頻講解:32分鐘
9.1 面向對象概述 208
9.2 面向對象與面向過程編程 209
9.2.1 面向過程編程 209
9.2.2 面向對象編程 209
9.2.3 面向對象的特點 210
9.3 統一建模語言 210
9.3.1 統一建模語言概述 210
9.3.2 統一建模語言的結構 211
9.3.3 面向對象的建模 213
9.4 小結 213
第10章 類和對象 214
視頻講解:1小時1分鐘
10.1 C 類 215
10.1.1 類概述 215
10.1.2 類的聲明與定義 215
10.1.3 類的實現 216
10.1.4 對象的聲明 221
10.2 構造函式 223
10.2.1 構造函式概述 223
10.2.2 複製構造函式 225
10.3 析構函式 227
10.4 類成員 229
10.4.1 訪問類成員 229
10.4.2 內聯成員函式 230
10.4.3 靜態類成員 231
10.4.4 隱藏的this指針 233
10.4.5 嵌套類 235
10.4.6 局部類 236
10.5 友元 237
10.5.1 友元概述 237
10.5.2 友元類 239
10.5.3 友元方法 240
10.6 命名空間 242
10.6.1 使用命名空間 242
10.6.2 定義命名空間 243
10.6.3 在多個檔案中定義命名空間 245
10.6.4 定義嵌套的命名空間 247
10.6.5 定義未命名的命名空間 248
10.7 小結 249
10.8 實踐與練習 249
第11章 繼承與派生 250
視頻講解:57分鐘
11.1 繼承 251
11.1.1 類的繼承 251
11.1.2 繼承後可訪問性 253
11.1.3 構造函式訪問順序 256
11.1.4 子類顯示調用父類構造函式 257
11.1.5 子類隱藏父類的成員函式 259
11.2 重載運算符 262
11.2.1 重載運算符的必要性 262
11.2.2 重載運算符的形式與規則 263
11.2.3 重載運算符的運算 265
11.2.4 轉換運算符 267
11.3 多重繼承 269
11.3.1 多重繼承定義 269
11.3.2 二義性 270
11.3.3 多重繼承的構造順序 271
11.4 多態 273
11.4.1 虛函式概述 273
11.4.2 利用虛函式實現動態綁定 273
11.4.3 虛繼承 275
11.5 抽象類 277
11.5.1 純虛函式 277
11.5.2 實現抽象類中的成員函式 279
11.6 小結 280
11.7 實踐與練習 280
第3篇套用
第12章 模板 282
視頻講解:49分鐘
12.1 函式模板 283
12.1.1 函式模板的定義 283
12.1.2 函式模板的作用 284
12.1.3 重載函式模板 286
12.2 類模板 287
12.2.1 類模板的定義與聲明 287
12.2.2 簡單類模板 289
12.2.3 默認模板參數 290
12.2.4 為具體類型的參數提供默認值 291
12.2.5 有界數組模板 292
12.3 模板的使用 294
12.3.1 定製類模板 294
12.3.2 定製類模板成員函式 295
12.4 鍊表類模板 297
12.4.1 鍊表 297
12.4.2 鍊表類模板 299
12.4.3 類模板的靜態數據成員 302
12.5 小結 303
12.6 實踐與練習 304
第13章 標準模板庫 305
視頻講解:35分鐘
13.1 幾種常見數據結構 306
13.1.1 簡述STL 306
13.1.2 順序線性結構 306
13.1.3 基本操作 306
13.1.4 棧結構 307
13.1.5 佇列結構 307
13.1.6 鍊表結構 308
13.1.7 圖結構 308
13.2 序列容器 309
13.2.1 對比容器適配器與容器 309
13.2.2 對比疊代器與容器 309
13.2.3 向量類模板 310
13.2.4 雙端佇列類模板 314
13.2.5 鍊表類模板 316
13.3 結合容器 318
13.3.1 set類模板 319
13.3.2 multiset類模板 323
13.3.3 map類模板 328
13.3.4 multimap類模板 330
13.4 算法 331
13.4.1 非修正序列算法 331
13.4.2 修正序列算法 334
13.4.3 排序算法 338
13.4.4 數值算法 345
13.5 疊代器 350
13.5.1 輸出疊代器 350
13.5.2 輸入疊代器 350
13.5.3 前向疊代器 351
13.5.4 雙向疊代器 352
13.5.5 隨機訪問疊代器 353
13.6 小結 354
13.7 實踐與練習 354
第14章 RTTI與異常處理 355
視頻講解:22分鐘
14.1 RTTI 356
14.1.1 什麼是RTTI 356
14.1.2 RTTI與引用 357
14.1.3 RTTI與多重繼承 358
14.1.4 RTTI映射語法 359
14.2 小結 361
第15章 程式調試 362
視頻講解:33分鐘
15.1 選擇正確的調試方法 363
15.2 程式常見的4種類型 363
15.2.1 語法 363
15.2.2 連線 364
15.2.3 運行時 364
15.2.4 邏輯 365
15.3 調試工具的使用 366
15.3.1 創建調試程式 366
15.3.2 進入調試狀態 369
15.3.3 Watch視窗 369
15.3.4 CallStack視窗 370
15.3.5 Memory視窗 370
15.3.6 Variables視窗 371
15.3.7 Registers視窗 371
15.3.8 Disassembly視窗 372
15.4 調試的基本套用 372
15.4.1 變數的跟蹤與查看 372
15.4.2 位置斷點的使用 373
15.4.3 數據斷點的使用 376
15.5 調試的套用 377
15.5.1 在調試時修改變數的值 378
15.5.2 在循環中調試 379
15.6 小結 380
第16章 檔案操作 380
視頻講解:58分鐘
16.1 檔案流 381
16.1.1 C 中的流類庫 381
16.1.2 類庫的使用 381
16.1.3 ios類中的枚舉常量 382
16.1.4 流的輸入/輸出 382
16.2 檔案打開 383
16.2.1 打開方式 383
16.2.2 默認打開模式 384
16.2.3 打開檔案同時創建檔案 385
16.3 檔案的讀寫 386
16.3.1 檔案流 386
16.3.2 寫文本檔案 388
16.3.3 讀取文本檔案 389
16.3.4 二進制檔案的讀寫 390
16.3.5 實現檔案複製 391
16.4 檔案指針移動操作 392
16.4.1 檔案與狀態 392
16.4.2 檔案的追加 393
16.4.3 檔案結尾的判斷 394
16.4.4 在指定位置讀寫檔案 395
16.5 檔案和流的關聯和分離 397
16.6 刪除檔案 398
16.7 小結 399
16.8 實踐與練習 399
第17章 網路通信 400
視頻講解:39分鐘
17.1 TCP/IP協定 401
17.1.1 OSI參考模型 401
17.1.2 TCP/IP參考模型 401
17.1.3 IP位址 402
17.1.4 數據包格式 403
17.2 套接字 405
17.2.1 Winsocket套接字 405
17.2.2 Winsocket的使用 405
17.2.3 套接字阻塞模式 410
17.2.4 位元組順序 410
17.2.5 面向連線流 411
17.2.6 面向無連線流 411
17.3 簡單協定通信 412
17.3.1 服務端 412
17.3.2 客戶端 414
17.3.3 實例的運行 416
17.4 小結 416
17.5 實踐與練習 416
第4篇 項目實戰
第18章 人事考勤管理 418
視頻講解:1小時31分鐘
18.1 開發背景 419
18.2 需求分析 419
18.3設計 419
18.3.1目標 419
18.3.2功能結構 420
18.3.3預覽 420
18.3.4 業務流程圖 422
18.3.5 資料庫設計 422
18.4 公共模組設計 425
18.5 主窗體設計 430
18.6 用戶登錄模組設計 432
18.6.1 用戶登錄模組概述 432
18.6.2 用戶登錄技術分析 433
18.6.3 用戶登錄實現過程 433
18.7 用戶管理模組設計 435
18.7.1 用戶管理模組概述 435
18.7.2 用戶管理技術分析 435
18.7.3 用戶管理實現過程 436
18.7.4 單元測試 438
18.8 部門管理模組設計 439
18.8.1 部門管理模組概述 439
18.8.2 部門管理技術分析 439
18.8.3 部門管理實現過程 440
18.9 人員信息管理模組設計 443
18.9.1 人員信息管理模組概述 443
18.9.2 人員信息管理技術分析 443
18.9.3 人員信息管理實現過程 443
18.10 考勤管理模組設計 449
18.10.1 考勤管理模組概述 449
18.10.2 考勤管理技術分析 450
18.10.3 考勤管理實現過程 451
18.11 考勤匯總查詢模組設計 456
18.11.1 考勤匯總查詢模組概述 456
18.11.2 考勤匯總查詢技術分析 457
18.11.3 考勤匯總查詢實現過程 458
18.12 開發技巧與難點分析 461
18.12.1 調用動態程式庫設計界面 461
18.12.2 主窗體的界面顯示 462
18.13 小結 462
附錄A 463
A1 Visual C 6.0選單命令及功能 464
A2 Visual C 6.0常用快捷鍵 465
附錄B 468
B1 安裝Visual Studio 2017 469
B2 Visual Studio 2017開發環境介紹 472
B3 Visual Studio 2017選單功能 478B4 Visual Studio 2017常用快捷鍵 481