內容簡介
本書是為C++程式設計學習者量身訂做的輔導書。
全書分為3篇。前篇介紹了面向過程的程式設計,主要有基本語句、語法基礎、函台擔鞏棵數機制和數據類型等內容。中篇介紹了一些實用編程技巧,內容包括閱讀代碼、調試程式、異常處理和簡單的編程思想。後篇介紹了面向對象的程式設計,主要有類和對象、對象生滅、友元、繼承、標準模板庫(STL)等內容。書中常以形象的比喻來解釋程式設計中的概念,通俗易懂,令讀者印象深刻,能更快地進入C++程式設多采駝計的大門。
本書的內容涵蓋了絕大部分常用的C++知識,可以作為大學
計算機專業或非計算機專業的程式設計入門教材,也可供計算機愛好者自學使用。
圖書目錄
前篇 過程化的程式設計
第1章 C++從這裡開始 1
1.1 軟體與程式 1
1.2 程式設計要做什麼 2
1.3 選好一種語言 3
1.4 C++能夠做些什麼 3
1.5 C語言、C++語言和Visual C++ 4
1.6 學習程式設計總體建議 5
1.7 C++學習的常見問題 6
1.8 縮略語和術語表 8
1.9 方法指導 8
1.10 習題 8
第 2章 Hello,World! 10
2.1 Visual Studio 2012的安裝和啟動 10
2.2 如何創建一個程式 11
2.3 輸出與輸入 17
2.4 Visual C++ 6.0的使用 19
2.5 小巧的Dev-C++ 22
2.5.1 Dev-C++的安裝 22
2.5.2 Dev-C++的配置 23
2.5.3 Dev-C++的使用 24
2.6 縮略語和術語表 26
2.7 方法指導 26
2.8 習題 26
第3章 各種各樣凝敬請的箱子—變數 28
3.1 會變的箱子 28
3.1.1 數據類型 28
3.1.2 變數名 29
3.1.3 變數的初始化 30
3.2 常用的基本數據類型 30
3.2.1 整型(Integer) 30
3.2.2 浮點型(Floating Point) 32
3.2.3 字元型(Character) 32
3.2.4 布爾型(Boolean) 33
3.3 不會變的箱子 33
3.4 算術表達式 34
3.4.1 操作符和表達式 34
3.4.2 算術操作符 35
3.5 箱子的轉換 36
3.5.1 隱式轉換 36
3.5.2 顯式轉換 36
3.6 縮略語和術語表 37
3.7 方法指導 38
3.8 習題 38
第4章 要走哪條路—分支結構 40
4.1 如果…… 40
4.1.1 條件—關係操作符 41
4.1.2 條件—邏輯操作符 44
4.1.3 &&和||的妙用 47
4.2 否則…… 47
4.2.1 如朽婚夜果與否則 48
4.2.2 如果里的如果…… 50
4.2.3 找朋友 51
4.3 愛判斷的問號 52
4.4 切換的開關 52
4.4.1 多路開關—switch 53
4.4.2 巧用switch 55
4.5 縮略語和術語表 56
4.6 方法指導 56
4.7 習題 56
第5章 有個圈兒的程式—循環結構 61
5.1 程式賽車 61
5.1.1 循環語句for 61
5.1.2 加加和減減 63
5.1.3 巧用for 64
5.2 退出比賽和進維修站 65
5.2.1 退出比賽—break 65
5.2.2 進維修站—continue 66
5.3 圈圈裡的圈圈 67
5.3.1 循環的嵌套 67
5.3.2 怎么讓輸出的東西更好看 68
5.4 當…… 70
5.4.1 當型循環 70
5.4.2 導火索—do 71
5.5 縮略語和術語表 73
5.6 方法棕您拔指導 73
5.7 習題 73
第6章 好用的工具—函式 78
6.1 簡單的工具 78
6.1.1 工具的說明書 78
6.1.2 如何使用系統造好的工具 80
6.2 打造自己的工具 81
6.2.1 函式的聲明 82
6.2.2 函辨酷數的定義 82
6.2.3 函式是如何運行的 83
6.2.4 返回語句—return 83
6.2.5 關於主函式乃鑽閥店 83
6.2.6 同名同姓 84
6.2.7 函式存在的意義 85
6.3 多功能開瓶器—函式重載 86
6.4 自動的“工具” 88
6.4.1 默認參數 88
6.4.2 定義默認參數的順序 89
6.4.3 默認參數和重載函式的混淆 89
6.5 給變數和參數起個“綽號”
—引用 90
6.5.1 引用的聲明 90
6.5.2 用引用傳遞參數 91
6.6* 函數裡的函式—遞歸 92
6.7 縮略語和術語表 93
6.8 方法指導 93
6.9 習題 94
第7章 好大的“倉庫”—數組 98
7.1 讓計算機處理更多數據—
使用數組 98
7.1.1 數組的聲明 98
7.1.2 數組的操作 99
7.1.3 數組的初始化 100
7.1.4 省略數組大小 100
7.2 倉庫是怎樣造成的 101
7.2.1 記憶體和地址 101
7.2.2 數組在記憶體中的存儲情況 101
7.2.3 字元的存儲情況 102
7.2.4 字元數組在記憶體中的存儲
情況 103
7.3 向函式傳遞數組 104
7.4 二維數組 106
7.4.1 線與面 106
7.4.2 二維數組的聲明和初始化 107
7.4.3 省略第 一維的大小 108
7.4.4 二維數組在記憶體中的存儲
情況 108
7.4.5 向函式傳遞二維數組 108
7.4.6 二維數組轉化成一維數組 109
7.5 縮略語和術語表 110
7.6 方法指導 110
7.7 習題 110
第8章 記憶體里的捷徑—指針 114
8.1 什麼是指針 114
8.2 指針變數的聲明和使用 114
8.2.1 指針的類型 115
8.2.2 指針變數的聲明 115
8.2.3 獲取地址和指針變數初始化 115
8.2.4 特殊的值—NULL 116
8.2.5 指針的使用—間接引用 116
8.3 指針的操作 117
8.3.1 指針的加減運算 117
8.3.2 指針的關係運算 118
8.4 指針與保護 118
8.4.1 對記憶體唯讀的指針 118
8.4.2 指針型常量 119
8.5 指針與數組 119
8.5.1 數組名的實質 120
8.5.2 指針數組 120
8.6 指針與函式 121
8.6.1 指針作為參數 121
8.6.2 指針作為返回值 122
8.7 更靈活的存儲 123
8.7.1 如何獲得堆記憶體空間 123
8.7.2 有借有還,再借不難 123
8.8 縮略語和術語表 124
8.9 方法指導 125
8.10 習題 125
第9章 自己設計的箱子—枚舉和結構 129
9.1 我的類型我做主—枚舉類型 129
9.2 設計一個收納箱—結構類型 131
9.3 結構與函式 134
9.3.1 結構作為參數 134
9.3.2 結構作為返回值 135
9.4 結構數組與結構指針 136
9.4.1 結構數組 136
9.4.2 結構指針 136
9.5 腳踏車的鏈條—鍊表 137
9.6 鍊表的實現 139
9.6.1 鍊表的創建和遍歷 139
9.6.2 鍊表的查詢 141
9.6.3 插入結點 142
9.6.4 刪除結點 144
9.6.5 清除鍊表 145
9.7 縮略語和術語表 146
9.8 方法指導 146
9.9 習題 147
中篇 實戰程式設計
第 10章 如何閱讀程式代碼 151
10.1 整體把握法 151
10.1.1 閱讀代碼的順序 151
10.1.2 整體把握語意 152
10.2 經驗法 153
10.3 模擬法 154
10.4 方法指導 155
10.5 習題 156
第 11章 如何調試程式代碼 159
11.1 再談變數 159
11.1.1 標識符 159
11.1.2 全局變數和局部變數 159
11.1.3 靜態局部變數 161
11.1.4 變數的作用域 163
11.1.5 變數的可見性 164
11.2 頭檔案的奧秘 165
11.2.1 如何創建一個頭檔案 165
11.2.2 頭檔案里有什麼 166
11.2.3 頭檔案和源檔案 168
11.2.4 細說#include 168
11.2.5 尖括弧和雙引號的區別 168
11.2.6 外部依賴項 169
11.3 更快更好地完成程式調試 170
11.3.1 如何檢查語法錯誤 170
11.3.2 常見語法錯誤及解決方法 173
11.4 **麻煩的問題 174
11.4.1 見識運行時錯誤 174
11.4.2 查找錯誤點 175
11.5 在VS2012里調試程式 178
11.5.1 如何設定和移除斷點 178
11.5.2 走起 178
11.5.3 調試工具列 179
11.5.4 監視和自動視窗 180
11.5.5 如何通過調試找到錯誤 181
11.6 縮略語和術語表 181
11.7 方法指導 181
11.8 習題 182
第 12章 如何編寫程式代碼 185
12.1 程式設計的基本步驟 185
12.2 三類問題 186
12.2.1 算 186
12.2.2 找 187
12.2.3 實現功能 188
12.3 函式的遞歸 190
12.3.1 什麼是棧 190
12.3.2 函式的調用機制 190
12.3.3 小試牛刀—用遞歸模擬棧 192
12.3.4* 遞歸的精髓 193
12.4 縮略語和術語表 195
12.5 方法指導 195
12.6 習題 196
第 13章 異常的處理 198
13.1 亡羊也要補牢 198
13.2 處理異常 199
13.2.1 盡力嘗試 200
13.2.2 抓住異常 200
13.3 拋出異常 202
13.4 縮略語和術語表 203
13.5 方法指導 203
13.6 習題 204
後篇 面向對象的程式設計
第 14章 初識對象 205
14.1 對象就是物體 205
14.2 一個字元串也是對象 205
14.2.1 奇妙的點 206
14.2.2 對字元串的操作 206
14.3 面向對象特點一:封裝性 208
14.4 縮略語和術語表 208
14.5 方法指導 208
14.6 習題 209
第 15章 再識對象 210
15.1 類是一種數據類型 210
15.1.1 類與結構 210
15.1.2 類的聲明與定義 211
15.2 公有和私有 211
15.3 成員函式 212
15.3.1 成員函式的聲明 212
15.3.3 成員函式的重載 213
15.3.4 成員函式的定義 213
15.4 如何方便地查看類 215
15.5 對象、引用和指針 216
15.5.1 對象的引用 216
15.5.2 對象指針 216
15.6 縮略語和術語表 216
15.7 方法指導 216
15.8 習題 217
第 16章 造物者與毀滅者—對象生滅 220
16.1 麻煩的初始化 220
16.2 造物者—構造函式 221
16.2.1 構造函式的聲明與定義 221
16.2.2 帶參數的構造函式 222
16.3 先有結點,還是先有鍊表 224
16.4.1 拷貝構造函式 225
16.4.2 默認拷貝構造函式 228
16.4.3 拷貝構造函式存在的意義 228
16.5 毀滅者—析構函式 232
16.6 縮略語和術語表 235
16.7 方法指導 235
16.8 習題 236
第 17章 共有財產 好朋友 操作符 239
17.1 有多少個結點 239
17.1.1 靜態成員數據 240
17.1.2 靜態成員數據的初始化 240
17.1.3 靜態成員函式 240
17.2 類的好朋友 243
17.2.1 友元類 243
17.2.2 友元函式 246
17.2.3 友元的利與弊 248
17.3 多功能的操作符—
操作符的重載 248
17.3.1 操作符作為成員函式 249
17.3.2 操作符作為友元函式 252
17.3.3 又見加加和減減 254
17.4 縮略語和術語表 256
17.5 方法指導 256
17.6 習題 256
第 18章 父與子—類的繼承 257
18.1 劍士 弓箭手 法師的困惑 257
18.2 面向對象特點二:繼承性 258
18.3 繼承的實現 259
18.3.1 私有和保護 259
18.3.2 一個簡單的例子 259
18.3.3 繼承的方式 261
18.4 子類對象的生滅 265
18.4.1 子類對象的構造 265
18.4.2 子類對象的析構 267
18.5 繼承與對象指針 268
18.5.1 父類指針與子類對象 268
18.5.2 猜猜它是誰 269
18.6 面向對象特點三:多態性 270
18.7 多態與虛函式 271
18.7.1 多態的實現 271
18.7.2 無法實現多態的虛函式 273
18.9 抽象類與純虛函式 276
18.10 多重繼承 278
18.11 縮略語和術語表 279
18.12 方法指導 279
18.13 習題 280
第 19章 再談輸入與輸出 286
19.1 cout和cin是什麼 286
19.2 輸入/輸出的重定向 286
19.2.1 輸入重定向 286
19.2.2 輸出重定向 287
19.2.3 無法被重定向的cerr 288
19.3 檔案的輸入與輸出 289
19.4 更巧妙地輸入和輸出 290
19.4.1 能整行輸入的getline 290
19.4.2 能讀取判斷末尾的eof 291
19.4.3 能計數的gcount 292
19.4.4 能設定域寬的width 292
19.5 插入操作符的重載 293
19.5.1 插入操作符 293
19.5.2 插入操作符的常用重載
方式 294
19.6 縮略語和術語表 295
19.7 方法指導 295
19.8 習題 295
第 20章 萬用的模板 297
20.1 函式模板 297
20.1.1 從為什麼需要模板說起 297
20.1.2 聲明與定義函式模板 298
20.1.3 函式模板與重載 299
20.2 類模板 301
20.2.1 類模板的聲明和定義 301
20.2.2 鍊表類模板實例 301
20.3 從數組到向量 306
20.3.1 向量的性能 306
20.3.2 對向量的操作 306
20.4 縮略語和術語表 307
20.5 方法技巧 307
20.6 習題 307
第 21章 博大精深的STL 312
21.1 STL里有什麼 312
21.2 超級指針——疊代器 313
21.3 有了算法,何必還需自己寫 314
21.4 從箱子到容器 316
21.4.1 鍊表,再見! 316
21.4.2 交集和並集 318
21.5 函式也能是對象 320
21.6 空間分配好管家 322
21.7 縮略語和術語表 323
21.8 方法指導 323
21.9 習題 324
附錄A 常用保留字列表 326
附錄B 常見編譯錯誤和解決方法 328
附錄C 參考文獻 331
附錄D 推薦書目 332