C++從入門到精通(第6版)
明日科技
買這商品的人也買了...
-
$374明解 C語言, 3/e (入門篇)
-
$400$312 -
$40321天學通 C++ (第8版)
-
$260$221 -
$301零基礎學 MQL — 基於 EA 的自動化交易編程
-
$250匯編語言, 4/e
-
$474$450 -
$680$537 -
$450$356 -
$354$336 -
$880$695 -
$458代替 VBA!用 Python 輕松實現 Excel 編程
-
$420$378 -
$588$559 -
$680$537 -
$600$468 -
$680$476 -
$720$562 -
$690$538 -
$1,200$948 -
$359$341 -
$720$504 -
$352巧用 ChatGPT 輕鬆學演講
-
$774$735 -
$780$608
相關主題
商品描述
《C++從入門到精通(第6版)》從初學者角度出發,以通俗易懂的語言和豐富多彩的實例,詳細講解了C++程序開發需要掌握的知識。本書分為4篇共19章:第1篇是基礎知識,包括緒論,數據類型,運算符與表達式,條件判斷語句,循環語句,函數,數組、指針和引用,以及構造數據類型;第2篇是面向對象,包括面向對象編程,類和對象,以及繼承與派生;第3篇是高級應用,包括模板、標準模板庫、RTTI與異常處理、程序調試、文件操作和網絡通信;第4篇是項目實戰,開發一個酒店客房管理系統,並製作一個植物大戰僵屍修改器。書中所有知識都結合具體實例進行介紹,涉及的程序代碼給出了詳細的註釋,讀者可以輕松領會C++的強大功能,快速提高開發能力。
目錄大綱
第1篇 基礎知識
第1章 緒論 2
視頻講解:32分鐘
1.1 認識C++ 2
1.1.1 C++的發展歷程 2
1.1.2 C/C++領域的傑出人物 3
1.1.3 C++語言的特點 4
1.2 認識C++程序代碼 5
1.2.1 C++程序代碼的組成 5
1.2.2 從源代碼到可執行程序 5
1.3 C++常用開發環境 6
1.4 C++工程項目文件 8
1.5 使用Dev C++創建程序 8
第2章 數據類型 11
視頻講解:162分鐘
2.1 第一個C++程序 11
2.2 關鍵字和標識符 13
2.3 基本數據類型 13
2.4 常量 14
2.4.1 整型常量 14
2.4.2 浮點型常量 15
2.4.3 字符常量 15
2.4.4 字符串常量 16
2.4.5 其他常量 16
2.5 變量 17
2.5.1 變量的聲明和定義 17
2.5.2 整型變量 17
2.5.3 浮點型變量 18
2.5.4 變量賦值 20
2.5.5 字符型變量 20
2.6 數據的輸入與輸出 21
2.6.1 C++中的流 21
2.6.2 格式化輸出 23
2.7 實踐與練習 29
第3章 運算符與表達式 30
視頻講解:119分鐘
3.1 表達式 30
3.2 賦值運算符和賦值表達式 31
3.3 算術運算符和算術表達式 31
3.3.1 算術運算符 31
3.3.2 算術表達式 32
3.3.3 自增、自減運算符 32
3.4 關系運算符和關系表達式 33
3.4.1 關系運算符 33
3.4.2 關系表達式 33
3.5 邏輯運算符和邏輯表達式 34
3.5.1 邏輯運算符 34
3.5.2 邏輯表達式 35
3.6 逗號運算符和逗號表達式 36
3.7 位運算符 36
3.8 移位運算符 37
3.9 復合賦值運算符 40
3.10 sizeof運算符 40
3.11 運算符的優先級和結合性 41
3.12 數據類型轉換 42
3.12.1 隱式類型轉換 42
3.12.2 強制類型轉換 43
3.13 判斷左值與右值 44
3.14 實踐與練習 45
第4章 條件判斷語句 46
視頻講解:102分鐘
4.1 語句、程序結構和流程圖 46
4.1.1 語句 46
4.1.2 程序結構 47
4.1.3 流程圖 47
4.2 if語句 48
4.2.1 簡單if語句 48
4.2.2 if…else語句 49
4.2.3 else if語句 50
4.3 if語句的嵌套 52
4.4 條件運算符 54
4.5 switch語句 55
4.6 實踐與練習 58
第5章 循環語句 60
視頻講解:85分鐘
5.1 while循環 60
5.2 do...while循環 62
5.3 for循環 63
5.4 循環控制 66
5.4.1 循環控制變量 66
5.4.2 break語句 66
5.4.3 continue語句 67
5.4.4 goto語句 68
5.5 循環嵌套 69
5.6 實踐與練習 72
第6章 函數 74
視頻講解:203分鐘
6.1 函數的定義和聲明 74
6.1.1 函數的定義 74
6.1.2 函數的聲明 75
6.2 函數的參數及返回值 76
6.2.1 函數的形參與實參 76
6.2.2 函數的調用與返回值 76
6.2.3 空函數 78
6.2.4 默認參數 79
6.3 嵌套調用與遞歸調用 80
6.3.1 嵌套調用 80
6.3.2 遞歸調用 80
6.4 變量的作用域 84
6.5 函數重載 85
6.6 內聯函數 86
6.7 變量的存儲類型 87
6.7.1 auto變量 87
6.7.2 static變量 88
6.7.3 register變量 89
6.7.4 extern變量 89
6.8 實踐與練習 90
第7章 數組、指針和引用 92
視頻講解:245分鐘
7.1 一維數組 92
7.1.1 一維數組的聲明 92
7.1.2 一維數組元素的引用 93
7.1.3 一維數組的初始化 93
7.2 二維數組 95
7.2.1 二維數組的聲明 95
7.2.2 二維數組元素的引用 95
7.2.3 二維數組的初始化 96
7.3 字符數組 97
7.3.1 字符數組的聲明與初始化 98
7.3.2 字符串 98
7.3.3 字符串連接函數strcat() 100
7.3.4 字符串復制函數strcpy() 101
7.3.5 字符串比較函數strcmp() 102
7.3.6 字符串長度函數strlen() 103
7.4 指針 103
7.4.1 變量、地址與指針 103
7.4.2 指針變量 104
7.4.3 指針運算符和取地址運算符 107
7.4.4 指針的自增、自減運算 108
7.4.5 指向空的指針與空類型指針 109
7.4.6 指向常量的指針與指針常量 110
7.5 指針與數組 111
7.5.1 數組的存儲方式 111
7.5.2 指針與一維數組 111
7.5.3 指針與二維數組 113
7.5.4 指針與字符數組 114
7.5.5 基於指針的字符串處理函數 115
7.6 指針在函數中的應用 119
7.6.1 傳遞地址 119
7.6.2 指向函數的指針 120
7.6.3 空指針調用函數 121
7.6.4 函數返回值為指針 121
7.7 指針數組 122
7.8 安全使用指針 124
7.8.1 內存分配 124
7.8.2 內存安全 126
7.9 引用 129
7.9.1 引用概述 129
7.9.2 使用引用傳遞函數參數 131
7.10 數組做函數參數 132
7.11 實踐與練習 134
第8章 構造數據類型 136
視頻講解:96分鐘
8.1 結構體 136
8.1.1 結構體的定義 136
8.1.2 結構體變量的聲明和初始化 137
8.1.3 結構體成員的引用 138
8.1.4 結構體的嵌套 139
8.1.5 結構體的大小 141
8.2 結構體與函數 141
8.2.1 結構體變量做函數參數 142
8.2.2 結構體指針做函數參數 142
8.3 結構體數組 143
8.3.1 結構體數組的聲明和初始化 143
8.3.2 指針訪問結構體數組 144
8.4 共享體 145
8.4.1 共享體的定義和使用 145
8.4.2 共享體的大小 146
8.4.3 共享體的特點 147
8.5 枚舉類型 147
8.5.1 枚舉類型的定義 147
8.5.2 枚舉變量 148
8.5.3 枚舉類型的運算 149
8.6 自定義數據類型 150
8.7 使用宏定義替換復雜的數據 151
8.8 實踐與練習 155
第2篇 面向對象
第9章 面向對象編程 158
視頻講解:39分鐘
9.1 面向對象概述 158
9.1.1 對象 158
9.1.2 類 158
9.1.3 封裝 159
9.1.4 繼承 159
9.1.5 多態 159
9.2 面向對象編程與面向過程編程 160
9.2.1 面向過程編程 160
9.2.2 面向對象編程 160
9.3 統一建模語言 161
9.3.1 UML概述 161
9.3.2 UML的結構 162
9.3.3 面向對象的建模 164
第10章 類和對象 165
視頻講解:197分鐘
10.1 C++類 165
10.1.1 類的聲明與定義 166
10.1.2 類的實現 166
10.1.3 對象的聲明和引用 169
10.2 構造函數 171
10.2.1 構造函數概述 171
10.2.2 復制構造函數 171
10.3 析構函數 173
10.4 類成員 174
10.4.1 訪問類成員 174
10.4.2 內聯成員函數 176
10.4.3 靜態類成員 176
10.4.4 隱藏的this指針 178
10.4.5 嵌套類 179
10.4.6 局部類 180
10.5 友元 180
10.5.1 友元概述 180
10.5.2 友元類 182
10.5.3 友元函數 183
10.6 命名空間 185
10.6.1 定義命名空間 185
10.6.2 在多個文件中定義命名空間 187
10.6.3 定義嵌套的命名空間 188
10.7 實踐與練習 189
第11章 繼承與派生 190
視頻講解:112分鐘
11.1 繼承 190
11.1.1 類的繼承 190
11.1.2 繼承後的可訪問性 192
11.1.3 構造函數的訪問順序 194
11.1.4 派生類中顯式調用基類構造函數 195
11.1.5 派生類屏蔽基類的同名成員函數 196
11.2 重載運算符 197
11.2.1 為什麽要重載運算符 197
11.2.2 重載運算符的形式與規則 199
11.2.3 重載運算符的運算 200
11.2.4 轉換運算符 202
11.3 多重繼承 203
11.3.1 多重繼承的定義 203
11.3.2 多重繼承的構造順序 204
11.4 多態 206
11.4.1 虛函數概述 206
11.4.2 利用虛函數實現動態綁定 206
11.4.3 虛繼承 208
11.5 抽象類 209
11.5.1 純虛函數和抽象類 209
11.5.2 實現抽象類中的成員函數 211
11.6 實踐與練習 213
第3篇 高級應用
第12章 模板 216
視頻講解:32分鐘
12.1 C++泛型編程和模板 216
12.1.1 認識C++泛型編程 216
12.1.2 強類型語言與C++模板 217
12.2 函數模板 218
12.2.1 函數模板的定義 218
12.2.2 函數模板的使用 219
12.2.3 重載函數模板 220
12.3 類模板 221
12.3.1 類模板的定義與聲明 221
12.3.2 簡單類模板 223
12.3.3 默認模板參數 223
12.3.4 為具體類型的參數提供默認值 224
12.3.5 有界數組模板 225
12.3.6 類模板的定製 226
12.4 鏈表類模板 229
12.4.1 鏈表的基本概念 229
12.4.2 設計單鏈表 230
12.4.3 鏈表類模板的使用 231
12.4.4 類模板的靜態數據成員 233
12.5 實踐與練習 235
第13章 標準模板庫 236
視頻講解:166分鐘
13.1 C++ STL基礎 236
13.1.1 認識STL 237
13.1.2 常見的數據結構 237
13.2 STL容器與迭代器 240
13.2.1 STL容器 240
13.2.2 STL迭代器 241
13.2.3 STL容器通用操作 243
13.3 序列式容器 243
13.3.1 序列式容器概述 243
13.3.2 array容器 244
13.3.3 vector容器 245
13.3.4 deque容器 248
13.3.5 list容器 250
13.3.6 forward_list容器 253
13.4 字符串容器 254
13.4.1 字符串容器概述 254
13.4.2 字符串容器常用函數 254
13.4.3 轉換為C語言風格的字符串 257
13.5 關聯式容器 257
13.5.1 關聯式容器概述 257
13.5.2 pair類模板 258
13.5.3 map容器 260
13.5.4 multimap容器 262
13.5.5 set容器 263
13.5.6 multiset容器 266
13.6 算法 267
13.6.1 非修正序列算法 267
13.6.2 修正序列算法 269
13.6.3 排序算法 272
13.6.4 數值算法 275
13.7 實踐與練習 279
第14章 RTTI與異常處理 280
視頻講解:18分鐘
14.1 RTTI 280
14.1.1 RTTI的定義 280
14.1.2 RTTI與引用 281
14.1.3 RTTI與多重繼承 282
14.1.4 RTTI映射語法 283
14.2 異常處理 285
14.2.1 拋出異常 285
14.2.2 捕獲異常 285
14.2.3 異常匹配 287
14.2.4 標準異常類 288
第15章 程序調試 290
視頻講解:21分鐘
15.1 程序錯誤的常見類型 290
15.2 調試工具的使用 292
15.2.1 創建調試程序 292
15.2.2 進入調試狀態 292
15.2.3 進行調試 293
15.2.4 變量的跟蹤與查看 294
15.2.5 調試的註意事項 295
第16章 文件操作 296
視頻講解:35分鐘
16.1 C++輸入/輸出流 296
16.1.1 C++中的流類庫 296
16.1.2 ios類中的枚舉常量 297
16.1.3 流的輸入/輸出 298
16.2 打開文件 299
16.3 讀寫文件 301
16.3.1 文件流 301
16.3.2 寫入文本文件 303
16.3.3 讀取文本文件 303
16.3.4 讀寫二進制文件 304
16.3.5 復制文件 305
16.4 文件指針的移動 306
16.4.1 文件錯誤與狀態 306
16.4.2 向文件中追加寫入 307
16.4.3 文件結尾的判斷 308
16.4.4 在指定位置讀寫文件 309
16.5 文件和流的關聯和分離 310
16.6 刪除文件 311
16.7 實踐與練習 312
第17章 網絡通信 313
視頻講解:20分鐘
17.1 TCP/IP協議 313
17.1.1 OSI參考模型 313
17.1.2 TCP/IP參考模型 314
17.1.3 IP地址 315
17.1.4 數據包格式 315
17.2 套接字 317
17.2.1 Winsock套接字 317
17.2.2 Winsock的使用 318
17.2.3 套接字阻塞模式 322
17.2.4 字節順序 322
17.2.5 面向連接流 323
17.2.6 面向無連接流 323
17.3 簡單協議通信 324
17.3.1 服務器端程序 324
17.3.2 客戶端程序 326
17.4 實踐與練習 328
第4篇 項目實戰
第18章 酒店客房管理系統 330
視頻講解:30分鐘
18.1 開發背景 330
18.2 系統設計 331
18.2.1 系統功能結構 331
18.2.2 業務流程圖 331
18.2.3 系統預覽 332
18.2.4 數據庫設計 333
18.3 主窗體設計 334
18.4 登錄模塊設計 339
18.4.1 登錄模塊技術分析 339
18.4.2 登錄模塊設計過程 340
18.5 客房預訂模塊設計 344
18.5.1 客房預訂模塊技術分析 344
18.5.2 客房預訂模塊實現過程 344
18.6 追加押金模塊設計 348
18.6.1 追加押金模塊技術分析 348
18.6.2 追加押金模塊實現過程 349
18.7 調房登記模塊設計 353
18.7.1 調房登記模塊技術分析 353
18.7.2 調房登記模塊實現過程 353
18.8 客房銷售報表模塊設計 358
18.8.1 客房銷售報表模塊技術分析 358
18.8.2 客房銷售報表模塊實現過程 358
18.9 項目文件清單 365
第19章 製作游戲外掛——植物大戰僵屍修改器 366
視頻講解:6分鐘
19.1 開發背景 366
19.2 系統功能設計 367
19.2.1 系統功能結構 367
19.2.2 業務流程圖 367
19.3 系統開發環境要求 368
19.4 修改器原理介紹 368
19.5 項目目錄結構預覽 370
19.6 修改器界面開發 371
19.6.1 新建項目 371
19.6.2 去除多餘控件 372
19.6.3 完成修改器主界面 373
19.6.4 添加“進程列表”對話框 374
19.7 修改陽光數量(內存搜索功能) 375
19.7.1 列出所有進程 375
19.7.2 打開游戲進程 376
19.7.3 搜索陽光數量位置 376
19.7.4 修改陽光數量 378
19.7.5 使用方法 378
19.8 註入游戲中的動態鏈接庫(DLL) 382
19.8.1 創建DLL項目 382
19.8.2 修改器界面介紹 384
19.8.3 註入DLL到游戲進程 384
19.9 修改器核心功能實現 385
19.9.1 按HOME鍵調出游戲修改器 386
19.9.2 任意修改陽光、金錢數量 387
19.9.3 調用種植、鏟除植物功能 388
19.9.4 自動收集陽光和金錢 389
19.9.5 僵屍全部出動 390
19.9.6 忽略地形,重疊種植 391
19.9.7 植物種植無冷卻時間 392
19.10 開發總結 393