TOP
0
0
【簡體曬書區】 單本79折,5本7折,活動好評延長至5/31,趕緊把握這一波!
C++入門經典(第5版)(簡體書)
滿額折

C++入門經典(第5版)(簡體書)

人民幣定價:39 元
定  價:NT$ 234 元
優惠價:87204
領券後再享88折
海外經銷商無庫存,到貨日平均30天至45天
可得紅利積點:6 點
相關商品
商品簡介
作者簡介
名人/編輯推薦
目次
書摘/試閱

商品簡介

《C++入門經典(第5版)》內容簡介:通過大量短小精悍的程序詳細闡述了基本的C++編程概念,包括C++程序的組成部分、變量、常量、表達式、語句、運算符、函數、循環、數組、指針、引用、函數和運算符重載、繼承、C++0x新增功能、面向對象分析和設計、模板、錯誤和異常處理等主題。每章都提供了示例程序清單,并輔以示例輸出和代碼分析,以闡述該章介紹的主題。為加深讀者對所學內容的理解,每章末尾都提供了常見問題及其答案以及練習和測驗。
《C++入門經典(第5版)》是針對C++初學者編寫的,不要求讀者有C語言方面的背景知識,既可作為高等院校教授C++課程的教材,也可供初學者自學C++時使用。

作者簡介

作者:(美國)立波提 (Jesse Liberty) (美國)卡登海德 (Rogers Cadenhead) 譯者:袁國忠 朱正平

名人/編輯推薦

《C++入門經典(第5版)》:全球銷量逾百萬冊的系列圖書,連續十余年打造的經典品牌,直觀、循序漸進的學習教程,掌握關鍵知識的最佳起點,秉承Read Less,Do More(精讀多練)的教學理念,以示例引導讀者完成最常見的任務,每章內容針對初學者精心設計,1小時輕松閱讀學習,24小時徹底掌握關鍵知識,每章案例與練習題助你輕松完成常見任務,通過實踐提高應用技能,鞏固所學知識。安裝并使用Windows、Mac OS X或Linux C++編譯器:創建C++面向對象程序;掌握C++核心概念,如函數、類、數組和指針;使用鏈表和模板提供豐富的功能;調試程序以消除代碼的瑕疵;學習異常和錯誤處理方法;探索下一個C++版本(C++0x)的新增功能。C++是有史以來最流行、最強大的編程語言之一。通過閱讀《C++入門經典(第5版)》,讀者將掌握C++的基本編程知識。《C++入門經典(第5版)》采用采用直觀、循序漸進的方法,引導讀者掌握從安裝和使用編譯器到調試程序,再到下一版本C++(C++Ox)新增功能在內的所有內容。《C++入門經典(第5版)》每章內容都建立在已學的知識之上,從而為讀者理解C++編程概念和方法打下堅實的基礎。循序漸進的示例引導讀者完成最常見的任務。問與答、測驗和練習幫助讀者檢驗知識的掌握情況。“注意”、“提示”和“警告”指出捷徑和解決方案。

目次

第一部分 C++入門
第1章 編寫第一個程序 2
1.1 使用C++ 2
1.2 尋找編譯器 3
1.3 編譯和鏈接源代碼 5
1.4 創建您的第一個程序 5
1.5 總結 6
1.6 問與答 7
1.7 作業 7
1.7.1 測驗 7
1.7.2 答案 8
1.7.3 練習 8

第2章 程序的組成部分 9
2.1 使用C++的原因 9
2.1.1 編程風格 10
2.1.2 C++和面向對象編程 11
2.2 程序的組成部分 12
2.2.1 預處理器編譯指令 12
2.2.2 源代碼行 13
2.3 注釋 13
2.4 函數 14
2.5 總結 16
2.6 問與答 16
2.7 作業 17
2.7.1 測驗 17
2.7.2 答案 18
2.7.3 練習 18

第3章 創建變量和常量 19
3.1 變量是什么 19
3.1.1 在內存中存儲變量 20
3.1.2 無符號變量和帶符號變量 21
3.1.3 變量類型 21
3.2 定義變量 22
3.3 給變量賦值 23
3.4 使用類型定義 24
3.5 常量 25
3.5.1 定義常量 26
3.5.2 枚舉常量 26
3.6 總結 26
3.7 問與答 27
3.8 作業 27
3.8.1 測驗 27
3.8.2 答案 28
3.8.3 練習 28

第4章 使用表達式、語句和運算符 29
4.1 語句 29
4.1.1 空白 29
4.1.2 復合語句 30
4.2 表達式 30
4.3 運算符 31
4.3.1 賦值運算符 31
4.3.2 數學運算符 31
4.3.3 組合運算符 32
4.3.4 遞增和遞減運算符 32
4.3.5 前綴運算符和後綴運算符 32
4.3.6 運算符優先級 34
4.3.7 關系運算符 36
4.4 if-else條件語句 36
4.4.1 else子句 37
4.4.2 復合if語句 37
4.5 邏輯運算符 39
4.5.1 與運算符 39
4.5.2 或運算符 39
4.5.3 非運算符 39
4.5.4 關系運算符和邏輯運算符的優先級 40
4.6 棘手的表達式值 40
4.7 總結 40
4.8 問與答 41
4.9 作業 41
4.9.1 測驗 41
4.9.2 答案 42
4.9.3 練習 42

第5章 調用函數 43
5.1 函數是什么 43
5.2 聲明和定義函數 43
5.3 在函數中使用變量 45
5.3.1 局部變量 45
5.3.2 全局變量 46
5.4 函數參數 47
5.5 從函數返回值 48
5.6 默認函數參數 50
5.7 函數重載 51
5.8 總結 52
5.9 問與答 53
5.10 作業 53
5.10.1 測驗 53
5.10.2 答案 54
5.10.3 練習 54

第6章 控制程序流程 55
6.1 循環 55
6.2 while循環 55
6.2.1 退出循環 56
6.2.2 跳到下一次循環 57
6.3 do-while循環 58
6.4 for循環 59
6.4.1 高級for循環 61
6.4.2 嵌套循環 61
6.5 switch語句 62
6.6 總結 64
6.7 問與答 64
6.8 作業 65
6.8.1 測驗 65
6.8.2 答案 65
6.8.3 練習 66

第7章 使用數組和字符串存儲信息 67
7.1 數組是什么 67
7.2 寫入時超過數組末尾 69
7.3 初始化數組 69
7.4 多維數組 70
7.4.1 初始化多維數組 71
7.4.2 內存簡介 72
7.5 字符數組 72
7.6 復制字符串 74
7.7 總結 75
7.8 問與答 75
7.9 作業 75
7.9.1 測驗 75
7.9.2 答案 76
7.9.3 練習 76

第二部分 類

第8章 創建基本類 78
8.1 類型是什么 78
8.2 創建新類型 78
8.3 類和成員 79
8.3.1 聲明類 79
8.3.2 創建對象 80
8.4 訪問類成員 80
8.5 實現成員函數 81
8.6 創建和刪除對象 83
8.6.1 默認構造函數 84
8.6.2 編譯器提供的構造函數 84
8.7 總結 86
8.8 問與答 87
8.9 作業 87
8.9.1 測驗 87
8.9.2 答案 87
8.9.3 練習 88

第9章 高級類 89
9.1 const成員函數 89
9.2 接口和實現 90
9.3 組織類聲明和函數定義 90
9.4 內聯實現 90
9.5 將其他類用作成員數據的類 92
9.6 總結 96
9.7 問與答 96
9.8 作業 96
9.8.1 測驗 96
9.8.2 答案 97
9.8.3 練習 97

第三部分 內存管理

第10章 創建指針 100
10.1 理解指針及其用途 100
10.1.1 在指針中存儲地址 102
10.1.2 間接運算符(間接地使用指針) 103
10.1.3 指針、地址和變量 104
10.1.4 使用指針操作數據 105
10.1.5 查看存儲在指針中的地址 105
10.1.6 為何使用指針 107
10.2 棧和堆 107
10.2.1 使用關鍵字new 108
10.2.2 使用關鍵字delete 109
10.2.3 避免內存泄露 110
10.3 總結 111
10.4 問與答 111
10.5 作業 111
10.5.1 測驗 111
10.5.2 答案 112
10.5.3 練習 112

第11章 開發高級指針 113
11.1 在堆中創建對象 113
11.2 刪除對象 113
11.3 使用指針訪問數據成員 114
11.4 堆中的數據成員 115
11.5 this指針 117
11.6 懸擺指針 118
11.7 const指針 118
11.8 const指針和const成員函數 119
11.9 總結 120
11.10 問與答 121
11.11 作業 121
11.11.1 測驗 121
11.11.2 答案 121
11.11.3 練習 122

第12章 創建引用 123
12.1 什么是引用 123
12.2 創建引用 123
12.3 將地址運算符用于引用 124
12.4 可引用的目標 126
12.5 空指針和空引用 127
12.6 按引用傳遞函數參數 127
12.6.1 使用指針實現swap() 128
12.6.2 使用引用實現swap() 129
12.7 理解函數頭和原型 130
12.8 返回多個值 130
12.9 總結 133
12.10 問與答 133
12.11 作業 133
12.11.1 測驗 133
12.11.2 答案 134
12.11.3 練習 134

第13章 高級引用和指針 135
13.1 按引用傳遞以提高效率 135
13.2 傳遞const指針 137
13.3 作為指針替代品的引用 139
13.4 什么情況下使用引用以及什么情況下使用指針 141
13.5 不要返回不在作用域內的引用 141
13.6 返回指向堆中對象的引用 142
13.7 誰擁有指針 143
13.8 總結 144
13.9 問與答 144
13.10 作業 144
13.10.1 測驗 144
13.10.2 答案 145
13.10.3 練習 145

第四部分 高級C++

第14章 高級函數 148
14.1 重載成員函數 148
14.2 使用默認值 150
14.3 初始化對象 151
14.4 復制構造函數 152
14.5 總結 155
14.6 問與答 155
14.7 作業 155
14.7.1 測驗 156
14.7.2 答案 156
14.7.3 練習 156

第15章 運算符重載 157
15.1 重載運算符 157
15.1.1 編寫遞增方法 158
15.1.2 重載後綴運算符 160
15.1.3 重載加法運算符 161
15.1.4 對運算符重載的限制 162
15.1.5 賦值運算符 163
15.2 轉換運算符 165
15.3 總結 167
15.4 問與答 168
15.5 作業 168
15.5.1 測驗 168
15.5.2 答案 168
15.5.3 練習 169

第五部分 繼承和多態

第16章 使用繼承擴展類 172
16.1 什么是繼承 172
16.1.1 繼承和派生 173
16.1.2 動物和繼承 173
16.1.3 派生語法 173
16.2 私有和保護 175
16.3 構造函數和析構函數 176
16.4 將參數傳遞給基類構造函數 178
16.5 重寫函數 181
16.5.1 重載和重寫 183
16.5.2 隱藏基類方法 183
16.5.3 調用基類方法 184
16.6 總結 185
16.7 問與答 185
16.8 作業 185
16.8.1 測驗 186
16.8.2 答案 186
16.8.3 練習 186

第17章 使用多態和派生類 187
17.1 使用虛函數實現多態 187
17.2 虛成員函數的工作原理 190
17.2.1 不能通過基類指針訪問派生類特有的方法 191
17.2.2 切除 191
17.2.3 虛析構函數 193
17.2.4 虛復制構造函數 193
17.2.5 使用虛成員函數的代價 196
17.3 總結 196
17.4 問與答 196
17.5 作業 196
17.5.1 測驗 196
17.5.2 答案 197
17.5.3 練習 197

第18章 使用高級多態 198
18.1 單繼承存在的問題 198
18.2 抽象數據類型 201
18.2.1 純虛函數 203
18.2.2 實現純虛函數 204
18.2.3 復雜的抽象層次結構 206
18.2.4 哪些類是抽象的 209
18.3 總結 210
18.4 問與答 210
18.5 作業 210
18.5.1 測驗 210
18.5.2 答案 211
18.5.3 練習 211

第19章 使用鏈表存儲信息 212
19.1 鏈表和其他結構 212
19.2 鏈表案例研究 213
19.2.1 委托 213
19.2.2 鏈表的組成部分 213
19.3 作為對象的鏈表 219
19.4 總結 220
19.5 問與答 220
19.6 作業 220
19.6.1 測驗 221
19.6.2 答案 221
19.6.3 練習 221

第六部分 特殊主題

第20章 使用特殊的類、函數和指針 224
20.1 靜態成員數據 224
20.2 靜態成員函數 226
20.3 將其他類對象作為成員 227
20.3.1 訪問被包含類的成員 231
20.3.2 禁止訪問包含類的成員 232
20.3.3 按引用還是按值復制 232
20.4 友元類和友元函數 232
20.5 函數指針 233
20.5.1 函數指針數組 235
20.5.2 將函數指針傳遞給其他函數 237
20.5.3 將typedef用于函數指針 239
20.5.4 成員函數指針 239
20.5.5 成員函數指針數組 241
20.6 總結 242
20.7 問與答 243
20.8 作業 243
20.8.1 問與答 243
20.8.2 答案 244
20.8.3 練習 244

第21章 使用C++0x新增的功能 245
21.1 下一版C++ 245
21.2 空指針常量 245
21.3 編譯階段常量表達式 247
21.4 自動確定類型的變量 248
21.5 新的for循環 250
21.6 總結 250
21.7 問與答 251
21.8 作業 251
21.8.1 測驗 251
21.8.2 答案 252
21.8.3 練習 252

第22章 面向對象分析和設計 253
22.1 開發周期 253
22.2 模擬報警系統 253
22.2.1 概念化 254
22.2.2 分析和需求 254
22.2.3 高級設計和詳細設計 254
22.2.4 其他對象 255
22.2.5 設計類 255
22.2.6 添加其他類 256
22.2.7 事件循環 256
22.3 案例研究 258
22.3.1 三思而後行 259
22.3.2 分而治之 259
22.3.3 郵件格式 259
22.3.4 初步類設計 260
22.3.5 同根和不同根 261
22.3.6 設計接口 262
22.3.7 建立原型 263
22.3.8 80/80規則 263
22.3.9 設計PostMasterMessage類 264
22.3.10 應用程序編程接口 264
22.3.11 小組編程 265
22.3.12 需要不斷考慮的設計因素 265
22.3.13 使用驅動程序 266
22.4 總結 271
22.5 問與答 271
22.6 作業 272
22.6.1 測驗 272
22.6.2 答案 272
22.6.3 練習 272

第23章 創建模板 273
23.1 什么是模板 273
23.2 模板實例 273
23.3 模板的定義 274
23.4 使用模板實例 279
23.5 總結 283
23.6 問與答 284
23.7 作業 284
23.7.1 測驗 284
23.7.2 答案 284
23.7.3 練習 285

第24章 處理異常和錯誤 286
24.1 程序中的各種錯誤 286
24.2 處理意外情況 287
24.3 異常 287
24.4 使用try塊和catch塊 290
24.4.1 捕獲異常 291
24.4.2 使用多條catch語句 291
24.4.3 使用引用以多態方式捕獲異常 291
24.5 編寫專業級代碼 295
24.5.1 大括號 295
24.5.2 長代碼行 295
24.5.3 switch語句 296
24.5.4 程序文本 296
24.5.5 標識符命名 297
24.5.6 名稱的拼寫和大寫 297
24.5.7 注釋 297
24.5.8 設置訪問權限 298
24.5.9 類定義 298
24.5.10 包含文件 298
24.5.11 使用const 298
24.6 總結 299
24.7 問與答 299
24.8 作業 299
24.8.1 測驗 299
24.8.2 答案 300
24.8.3 練習 300

第七部分 附錄

附錄A 二進制和十六進制 302
A.1 其他進制 302
A.2 不同進制之間的轉換 303
A.2.1 二進制 304
A.2.2 為什么使用二進制 304
A.2.3 位、字節和半字節 304
A.2.4 什么是KB 305
A.2.5 二進制數 305
A.3 十六進制 305
附錄B 術語表 308
附錄C 配套網站 314

書摘/試閱

22.3.5 同根和不同根
繼承層次結構的設計方式有兩種。一是將所有類(或幾乎所有類)都作為同一個根類(rootclass)的後代;二是使用多個繼承層次結構。共用根類的優點是,通常可避免多繼承,缺點是很多時候需要將實現放在基類中。
如果一組類有共同的祖先,就稱為同根;否則稱為不同根。
由于需要針對多種平臺開發該軟件,而多繼承太復雜,并非所有平臺的所有編譯器都支持,因此您決定使用同根層次結構和單繼承,并找出未來可能使用多繼承的地方,以確保以後分解層次結構并添加多繼承時不會破壞整個設計。
您決定所有內部類的名稱都以字母p打頭,這樣可輕松、快速地確定哪些類是內部開發的,哪些類來自其他類庫。
您將根類命名為pObiect,幾乎您創建的每個類都是它的後代。pObjiect本身將非常簡單,只包含每個類都有的數據。
使用同根層次結構時,應給根類指定非常通用的名稱(如pobject),且包含的功能很少。根類的作用在于,讓您能夠創建一系列後代,并將它們稱為pObiect的實例。同根層次結構的缺點是,經常需要將接口提升到根類。
在這個層次結構中,接下來的候選類是pStored和一pWired。pStored對象將存儲到磁盤(如程序沒有運行時)而pWired將通過調制解調器或網絡發送。由于幾乎所有的對象都需要存儲到磁盤,因此將這種功能放在層次結構開頭是合理的。由于所有通過調制解調器發送的對象都必須存儲,但并非所有存儲的對象都必須通過調制解調器發送,因此從pStored派生出pWired是合乎邏輯的。
每個派生類都繼承了基類的所有知識(數據)和功能(成員函數),還應有其特有的功能。因此,pWired可能添加各種函數,但這些函數都是為方便通過調制解調器傳輸數據而設計的。
有可能通過網絡傳輸的對象都將存儲、存儲的對象都將通過網絡傳輸,還有可能這兩種說法都不正確。如果只有部分通過網絡傳輸的對象將存儲,且只有不同存儲的對象將通過網絡傳輸,那么您要么使用多繼承,要么采用其他解決方案。對于這樣的情形,一種解決方案是,讓Wired繼承Stored,并讓執行存儲的函數在對象將通過網絡傳輸但不會存儲時,什么也不做或返回一條錯誤消息。
事實上,顯然有些存儲的對象不會通過網絡傳輸,如用戶首選項。然而,所有通過網絡傳輸的對象都將存儲,因此,到目前為止,繼承層次結構應如圖22.1所示。

您曾經瀏覽過的商品

購物須知

大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。

特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。

為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。

若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

優惠價:87 204
海外經銷商無庫存,到貨日平均30天至45天

暢銷榜

客服中心

收藏

會員專區