基本信息
書名:C++從入門到精通
出版社:清華大學出版社
ISBN:9787302227441
出版時間:2010-07-01
作者:李偉明、侯春多
定價:49.8元RMB
內容簡介
本書從初學者的角度出發,以通俗易懂的語言,配合豐富的實例,詳細講解了C++語言的基礎知識。本書包括4篇18章:第1篇是基礎知識,包括了緒論,數據類型,表達式與語句,條件判斷語句,循環語句,函式,數組、指針和引用,構造數據類型;第2篇是核心技術,包括了面向對象編程、類和對象、繼承與派生;第3篇是高級套用,包括了模板、STL標準模板庫、RTTI與異常處理、程式調測、檔案操作、網路通信;第4篇為項目實戰,結合圖書管理系統,依照軟體工程的開發流程,講述如何進行實際開發。書中所有知識都結合具體實例進行介紹,涉及的程式代碼給出了詳細的注釋,可以使讀者輕鬆領會C++語言的強大,快速提高開發技能。
本書列舉了大量的小型實例、綜合實例和部分項目案例;所附DVD光碟內容有同步視頻講解、實例源程式、“實踐與練習”答案等;
本書的服務網站提供了模組庫、案例庫、題庫、素材庫、答疑服務。本書內容詳盡,實例豐富,非常適合作為編程初學者的學習用書,也適合作為開發人員的查閱、參考資料。
圖書目錄
目 錄
第1篇 基礎知識
第1章 緒論 3
視頻講解:1小時18分鐘
1.1 C++歷史背景 4
1.1.1 20世紀最偉大的發明 4
1.1.2 C++發展歷程 4
1.1.3 C++中的傑出人物 5
1.2 常用開發環境 6
1.2.1 Visual C++6.0 6
1.2.2 Visual C++2008 7
1.2.3 GCC/G++ 8
1.2.4 Dev-C 8
1.2.5 Eclipse 9
1.3 認知C++程式代碼 9
1.4 C++工程項目檔案 10
1.5 使用VC創建程式 11
1.6 編譯與連線過程 14
1.7 C++的特點 17
1.8 小結 17
第2章 數據類型 19
視頻講解:1小時26分鐘
2.1 第一個C++程式 20
2.1.1 #INCLUDE指令 20
2.1.2 注釋 20
2.1.3 main函式 21
2.1.4 函式體 21
2.1.5 函式返回值 21
2.2 數據類型 21
2.3 常量及符號 22
2.3.1 整型常量 23
2.3.2 實型常量 24
2.3.3 字元常量 24
2.3.4 字元串常量 25
2.3.5 其他常量 26
2.4 變數 26
2.4.1 標識符 26
2.4.2 變數與變數說明 27
2.4.3 整型變數 27
2.4.4 實型變數 28
2.4.5 變數賦值 28
2.4.6 變數賦初值 29
2.4.7 字元變數 29
2.5 數據輸入與輸出 30
2.5.1 控制台螢幕 31
2.5.2 C++語言中的流 31
2.5.3 流操作的控制 33
2.6 小結 40
2.7 實踐與練習 41
第3章 表達式與語句 43
視頻講解:55分鐘
3.1 運算符 44
3.1.1 算術運算符 44
3.1.2 關係運算符 45
3.1.3 邏輯運算符 46
3.1.4 賦值運算符 47
3.1.5 位運算 48
3.1.6 移位運算符 50
3.1.7 sizeof運算符 52
3.1.8 條件運算符 52
3.1.9 逗號運算符 53
3.2 結合性和優先權 53
3.3 表達式 54
3.3.1 算術表達式 55
3.3.2 關係表達式 55
3.3.3 條件表達式 55
3.3.4 賦值表達式 56
3.3.5 邏輯表達式 56
3.3.6 逗號表達式 56
3.3.7 表達式中的類型轉換 58
3.4 語句 60
3.5 小結 61
3.6 實踐與練習 61
第4章 條件判斷語句 63
視頻講解:35分鐘
4.1 決策分支 64
4.2 判斷語句 65
4.2.1 第一種形式的判斷語句 65
4.2.2 第二種形式的判斷語句 67
4.2.3 第三種形式的判斷語句 69
4.3 使用條件運算符進行判斷 70
4.4 switch語句 72
4.5 判斷語句的嵌套 75
4.6 小結 77
4.7 實踐與練習 77
第5章 循環語句 79
視頻講解:53分鐘
5.1 while循環 80
5.2 do...while循環 82
5.3 while與do…while比較 83
5.4 for循環語句 85
5.5 循環控制 88
5.5.1 控制循環的變數 89
5.5.2 break語句 90
5.5.3 continue語句 91
5.5.4 goto語句 92
5.6 循環嵌套 93
5.7 循環套用實例 95
5.7.1 阿姆斯壯數 95
5.7.2 巴斯卡三角形 96
5.7.3 對輸入的分數進行排名 97
5.8 小結 98
5.9 實踐與練習 98
第6章 函式 99
視頻講解:1小時14分鐘
6.1 函式概述 100
6.1.1 函式的定義 100
6.1.2 函式的聲明 100
6.2 函式參數及返回值 102
6.2.1 返回值 102
6.2.2 空函式 102
6.2.3 形參與實參 103
6.2.4 默認參數 104
6.2.5 可變參數 105
6.3 函式調用 106
6.3.1 傳值調用 106
6.3.2 嵌套調用 108
6.3.3 遞歸調用 109
6.4 變數作用域 113
6.5 重載函式 113
6.6 內聯函式 115
6.7 變數的存儲類別 116
6.7.1 auto變數 116
6.7.2 static變數 117
6.7.3 register變數 119
6.7.4 extern變數 119
6.8 小結 120
6.9 實踐與練習 120
第7章 數組、指針和引用 121
視頻講解:1小時27分鐘
7.1 一維數組 122
7.1.1 一維數組的聲明 122
7.1.2 一維數組的引用 122
7.1.3 一維數組的初始化 123
7.2 二維數組 124
7.2.1 二維數組的聲明 124
7.2.2 二維數組元素的引用 125
7.2.3 二維數組的初始化 126
7.3 字元數組 128
7.4 指針 135
7.4.1 變數與指針 135
7.4.2 指針運算符和取地址運算符 138
7.4.3 指針運算 140
7.5 指針與數組 141
7.5.1 數組的存儲 141
7.5.2 指針與一維數組 142
7.5.3 指針與二維數組 144
7.5.4 指針與字元數組 148
7.6 指向函式的指針 149
7.7 引用 150
7.7.1 使用引用傳遞參數 152
7.7.2 指針傳遞參數 153
7.7.3 數組做函式參數 154
7.8 指針數組 156
7.9 小結 159
7.10 實踐與練習 159
第8章 構造數據類型 161
視頻講解:59分鐘
8.1 結構體 162
8.1.1 結構體定義 162
8.1.2 結構體變數 163
8.1.3 結構體成員及初始化 163
8.1.4 結構體的嵌套 166
8.1.5 結構體大小 167
8.2 結構體與函式 169
8.2.1 結構體變數做函式參數 169
8.2.2 結構體指針做函式參數 170
8.3 結構體數組 171
8.3.1 結構體數組聲明與引用 171
8.3.2 指針訪問結構體數組 172
8.4 共用體 173
8.4.1 共用體的定義與聲明 173
8.4.2 共用體的大小 174
8.4.3 共用體的特點 176
8.5 枚舉類型 176
8.5.1 枚舉類型的聲明 176
8.5.2 枚舉類型變數 177
8.5.3 枚舉類型的運算 178
8.6 自定義數據類型 179
8.7 小結 181
8.8 實踐與練習 181
第2篇 核心技術
第9章 面向對象編程 185
視頻講解:32分鐘
9.1 面向對象概述 186
9.2 面向對象與面向過程編程 187
9.2.1 面向過程編程 187
9.2.2 面向對象編程 188
9.2.3 面向對象的特點 188
9.3 統一建模語言 189
9.3.1 統一建模語言概述 189
9.3.2 統一建模語言的結構 189
9.3.3 面向對象的建模 191
9.4 小結 192
第10章 類和對象 193
視頻講解:1小時1分鐘
10.1 C++類 194
10.1.1 類概述 194
10.1.2 類的聲明與定義 194
10.1.3 類的實現 196
10.1.4 對象的聲明 200
10.2 構造函式 202
10.2.1 構造函式概述 202
10.2.2 複製構造函式 204
10.3 析構函式 206
10.4 類成員 208
10.4.1 訪問類成員 208
10.4.2 內聯成員函式 210
10.4.3 靜態類成員 211
10.4.4 隱藏的this指針 213
10.4.5 嵌套類 214
10.4.6 局部類 215
10.5 友元 216
10.5.1 友元概述 216
10.5.2 友元類 218
10.5.3 友元方法 219
10.6 命名空間 222
10.6.1 使用命名空間 222
10.6.2 定義命名空間 222
10.6.3 在多個檔案中定義命名空間 225
10.6.4 定義嵌套的命名空間 226
10.6.5 定義未命名的命名空間 228
10.7 小結 228
10.8 實踐與練習 229
第11章 繼承與派生 231
視頻講解:57分鐘
11.1 繼承 232
11.1.1 類的繼承 232
11.1.2 繼承後可訪問性 234
11.1.3 構造函式訪問順序 237
11.1.4 子類隱藏父類的成員函式 238
11.2 重載運算符 241
11.2.1 重載運算符的必要性 241
11.2.2 重載運算符的形式與規則 243
11.2.3 重載運算符的運算 244
11.2.4 轉換運算符 247
11.3 多重繼承 248
11.3.1 多重繼承定義 248
11.3.2 二義性 250
11.3.3 多重繼承的構造順序 250
11.4 多態 252
11.4.1 虛函式概述 252
11.4.2 利用虛函式實現動態綁定 253
11.4.3 虛繼承 254
11.5 抽象類 256
11.5.1 純虛函式 256
11.5.2 實現抽象類中的成員函式 258
11.6 小結 260
11.7 實踐與練習 260
第3篇 高級套用
第12章 模板 263
視頻講解:49分鐘
12.1 函式模板 264
12.1.1 函式模板的定義 264
12.1.2 函式模板的作用 265
12.1.3 重載函式模板 267
12.2 類模板 268
12.2.1 類模板的定義與聲明 268
12.2.2 簡單類模板 270
12.2.3 默認模板參數 271
12.2.4 為具體類型的參數提供默認值 272
12.2.5 有界數組模板 273
12.3 模板的使用 275
12.3.1 定製類模板 275
12.3.2 定製類模板成員函式 276
12.3.3 模板部分定製 278
12.4 鍊表類模板 279
12.4.1 鍊表 280
12.4.2 鍊表類模板 282
12.4.3 類模板的靜態數據成員 284
12.5 小結 286
12.6 實踐與練習 286
第13章 STL標準模板庫 287
視頻講解:35分鐘
13.1 序列容器 288
13.1.1 向量類模板 288
13.1.2 雙端佇列類模板 290
13.1.3 鍊表類模板 292
13.2 結合容器 294
13.2.1 set類模板 295
13.2.2 multiset類模板 299
13.2.3 map類模板 304
13.2.4 multimap類模板 306
13.3 算法 307
13.3.1 非修正序列算法 307
13.3.2 修正序列算法 310
13.3.3 排序算法 314
13.3.4 數值算法 321
13.4 疊代器 325
13.4.1 輸出疊代器 325
13.4.2 輸入疊代器 326
13.4.3 前向疊代器 327
13.4.4 雙向疊代器 328
13.4.5 隨機訪問疊代器 329
13.5 小結 330
13.6 實踐與練習 330
第14章 RTTI與異常處理 331
視頻講解:22分鐘
14.1 RTTI(運行時類型識別) 332
14.1.1 什麼是RTTI 332
14.1.2 RTTI與引用 333
14.1.3 RTTI與多重繼承 334
14.1.4 RTTI映射語法 335
14.2 異常處理 337
14.2.1 拋出異常 338
14.2.2 異常捕獲 340
14.2.3 異常匹配 342
14.2.4 標準異常 344
14.3 小結 345
第15章 程式調試 347
視頻講解:33分鐘
15.1 選擇正確的調試方法 348
15.2 程式錯誤常見的4種類型 348
15.2.1 語法錯誤 348
15.2.2 連線錯誤 349
15.2.3 運行時錯誤 349
15.2.4 邏輯錯誤 350
15.3 調試工具的使用 351
15.3.1 創建調試程式 351
15.3.2 進入調試狀態 353
15.3.3 Watch視窗 353
15.3.4 Call Stack視窗 353
15.3.5 Memory視窗 354
15.3.6 Variables視窗 354
15.3.7 Registers視窗 355
15.3.8 Disassembly視窗 355
15.4 調試的基本套用 355
15.4.1 變數的跟蹤與查看 355
15.4.2 位置斷點的使用 357
15.4.3 數據斷點的使用 359
15.5 調試的高級套用 360
15.5.1 在調試時修改變數的值 360
15.5.2 在循環中調試 361
15.6 小結 362
第16章 檔案操作 363
視頻講解:58分鐘
16.1 檔案流 364
16.1.1 C++中的流類庫 364
16.1.2 類庫的使用 364
16.1.3 ios類中的枚舉常量 365
16.1.4 流的輸入/輸出 365
16.2 檔案打開 366
16.2.1 打開方式 366
16.2.2 默認打開模式 367
16.2.3 打開檔案同時創建檔案 368
16.3 檔案的讀寫 369
16.3.1 檔案流 369
16.3.2 寫文本檔案 371
16.3.3 讀取文本檔案 371
16.3.4 二進制檔案的讀寫 372
16.3.5 實現檔案複製 374
16.4 檔案指針移動操作 375
16.4.1 檔案錯誤與狀態 375
16.4.2 檔案的追加 375
16.4.3 檔案結尾的判斷 376
16.4.4 在指定位置讀寫檔案 378
16.5 檔案和流的關聯和分離 379
16.6 刪除檔案 381
16.7 小結 382
16.8 實踐與練習 382
第17章 網路通信 383
視頻講解:39分鐘
17.1 TCP/IP協定 384
17.1.1 OSI參考模型 384
17.1.2 TCP/IP參考模型 384
17.1.3 IP位址 385
17.1.4 數據包格式 386
17.2 套接字 388
17.2.1 Winsocket套接字 388
17.2.2 Winsocket的使用 388
17.2.3 套接字阻塞模式 393
17.2.4 位元組順序 393
17.2.5 面向連線流 394
17.2.6 面向無連線流 395
17.3 簡單協定通信 395
17.3.1 服務端 395
17.3.2 客戶端 398
17.3.3 實例的運行 399
17.4 小結 399
17.5 實踐與練習 399
第4篇 項目實戰
第18章 圖書管理系統 403
視頻講解:42分鐘
18.1 系統設計 404
18.1.1 需求分析 404
18.1.2 系統目標 404
18.1.3 系統功能結構 404
18.2 圖書類 405
18.3 主程式 409
18.4 添加圖書 413
18.5 顯示圖書信息 414
18.6 刪除圖書 416
18.7 小結 417