久負盛名的 C++經典教程:C++ Primer中文版:第4版:特別版
定價 : ¥129.00
會員價 : ¥96.75(75折)本書詳情查看:http://www.china-pub.com/196371
作者: (美)Stanley B.Lippman Josee Lajoie Barbara E.Moo [作譯者介紹]
譯者: 李師賢;蔣愛軍;梅曉勇;林瑛[同譯者作品]
叢書名: 圖靈程式設計叢書
出版社:人民郵電出版社
ISBN:9787115220172
上架時間:2010-2-8
出版日期:2010 年2月
開本:16開
頁碼:974
版次:4-1
【編輯精選】
開篇即介紹C++標準庫,使讀者能夠儘快編寫公用程式,從而始終在實戰環境中學習。
講授現代編程風格和程式設計技術。
新增了大量教學輔助內容,用於強調重要的知識點、常見的錯誤、優秀的編程實踐,給出使用提示。
大量來自實戰的樣本和習題,可以鞏固所學技能。
【內容簡介】
本書是久負盛名的 C++經典教程,完美結合了 C++大師 Stanley B. Lippman豐富的實踐經驗和 C++標準委員會原負責人 Josée Lajoie對 C++標準的深入理解,已經協助全球無數程式員學會了 C++。新版更加入了 C++先驅 Barbara E. Moo在 C++教學方面的真知灼見,充分體現了 C++語言的最新進展和當前的業界最佳實務。本版不但有大量教學輔助內容,用於強調重要的知識點,提醒常見的錯誤,推薦優秀的編程實踐,給出使用提示,大量來自實戰的樣本和習題,更特別附帶了《C++編程規範》的內容。
對 C++基本概念和技術全面而且權威的闡述,對現代 C++編程風格的強調,使本書成為 C++初學者的最佳指南;對於中進階程式員,本書也是不可或缺的參考書。
【目錄】
第1章 快速入門 1
1.1 編寫簡單的C++程式 2
1.2 初窺輸入/輸出 5
1.2.1 標準輸入與輸出對象 5
1.2.2 一個使用IO庫的程式 5
1.3 關於注釋 8
1.4 控制結構 10
1.4.1 while語句 10
1.4.2 for語句 12
1.4.3 if語句 14
1.4.4 讀入未知數目的輸入 15
1.5 類的簡介 17
1.5.1 Sales_item類 17
1.5.2 初窺成員函數 19
1.6 C++程式 21
小結 22
術語 22
第一部分 基礎語言
第2章 變數和基本類型 29
2.1 基本內建類型 30
.2.1.1 整型 30
2.1.2 浮點型 32
2.2 字面值常量 34
2.3 變數 38
2.3.1 什麼是變數 39
2.3.2 變數名 40
2.3.3 定義對象 42
2.3.4 變數初始化規則 44
2.3.5 聲明和定義 45
2.3.6 名字的範圍 46
2.3.7 在變數使用處定義變數 48
2.4 const限定符 49
2.5 引用 50
2.6 typedef名字 53
2.7 枚舉 53
2.8 類類型 54
2.9 編寫自己的標頭檔 57
2.9.1 設計自己的標頭檔 58
2.9.2 前置處理器的簡單介紹 60
小結 62
術語 62
第3章 標準庫類型 67
3.1 命名空間的using聲明 68
3.2 標準庫string類型 70
3.2.1 string對象的定義和初始化 70
3.2.2 String對象的讀寫 71
3.2.3 string對象的操作 72
3.2.4 string對象中字元的處理 76
3.3 標準庫vector類型 78
3.3.1 vector對象的定義和初始化 79
3.3.2 vector對象的操作 81
3.4 迭代器簡介 83
3.5 標準庫bitset類型 88
3.5.1 bitset對象的定義和初始化 88
3.5.2 bitset對象上的操作 90
小結 92
術語 92
第4章 數組和指標 95
4.1 數組 96
4.1.1 數組的定義和初始化 96
4.1.2 數組操作 99
4.2 指標的引入 100
4.2.1 什麼是指標 100
4.2.2 指標的定義和初始化 101
4.2.3 指標操作 104
4.2.4 使用指標訪問數組元素 106
4.2.5 指標和const限定符 110
4.3 C風格字串 113
4.3.1 建立動態數組 117
4.3.2 新舊代碼的相容 120
4.4 多維陣列 122
小結 124
術語 125
第5章 運算式 127
5.1 算術操作符 129
5.2 關係操作符和邏輯操作符 131
5.3 位操作符 134
5.3.1 bitset對象或整型值的使用 135
5.3.2 將移位操作符用於IO 137
5.4 賦值操作符 137
5.4.1 賦值操作的右結合性 138
5.4.2 賦值操作具有低優先順序 138
5.4.3 複合賦值操作符 139
5.5 自增和自減操作符 140
5.6 箭頭操作符 142
5.7 條件操作符 143
5.8 sizeof操作符 144
5.9 逗號操作符 145
5.10 複合運算式的求值 145
5.10.1 優先順序 145
5.10.2 結合性 146
5.10.3 求值順序 148
5.11 new和delete運算式 150
5.12 類型轉換 154
5.12.1 何時發生隱式類型轉換 154
5.12.2 算術轉換 155
5.12.3 其他隱式轉換 156
5.12.4 顯式轉換 158
5.12.5 何時需要強制類型轉換 158
5.12.6 命名的強制類型轉換 158
5.12.7 舊式強制類型轉換 160
小結 161
術語 162
第6章 語句 165
6.1 簡單語句 166
6.2 聲明語句 167
6.3 複合陳述式(塊) 167
6.4 語句範圍 168
6.5 if語句 169
6.6 switch語句 172
6.6.1 使用switch 173
6.6.2 switch中的控制流程 173
6.6.3 default標號 175
6.6.4 switch運算式與case標號 176
6.6.5 switch內部的變數定義 176
6.7 while語句 177
6.8 for迴圈語句 179
6.8.1 省略for語句頭的某些部分 180
6.8.2 for語句頭中的多個定義 181
6.9 do while語句 182
6.10 break語句 183
6.11 continue語句 184
6.12 goto語句 185
6.13 try塊和異常處理 186
6.13.1 throw運算式 186
6.13.2 try塊 187
6.13.3 標準異常 189
6.14 使用前置處理器進行調試 190
小結 192
術語 192
第7章 函數 195
7.1 函數的定義 196
7.1.1 函數傳回型別 197
7.1.2 函數形參表 198
7.2 參數傳遞 199
7.2.1 非引用形參 199
7.2.2 引用形參 201
7.2.3 vector和其他容器類型的形參 206
7.2.4 數組形參 206
7.2.5 傳遞給函數的數組的處理 209
7.2.6 main:處理命令列選項 210
7.2.7 含有可變形參的函數 211
7.3 return語句 211
7.3.1 沒有傳回值的函數 212
7.3.2 具有傳回值的函數 212
7.3.3 遞迴 216
7.4 函式宣告 217
7.5 局部對象 220
7.5.1 自動對象 220
7.5.2 靜態局部對象 220
7.6 內嵌函式 221
7.7 類的成員函數 222
7.7.1 定義成員函數的函數體 223
7.7.2 在類外定義成員函數 225
7.7.3 編寫Sales_item類的建構函式 225
7.7.4 類代碼檔案的組織 227
7.8 重載函數 228
7.8.1 重載與範圍 230
7.8.2 函數匹配與實參轉換 231
7.8.3 重載確定的三個步驟 232
7.8.4 實參類型轉換 234
7.9 指向函數的指標 237
小結 239
術語 240
第8章 標準IO庫 243
8.1 物件導向的標準庫 244
8.2 條件狀態 247
8.3 輸出緩衝區的管理 249
8.4 檔案的輸入和輸出 251
8.4.1 檔案流對象的使用 251
8.4.2 檔案模式 254
8.4.3 一個開啟並檢查輸入檔案的
程式 256
8.5 字串流 257
小結 259
術語 259
第二部分 容器和演算法
第9章 順序容器 263
9.1 順序容器的定義 264
9.1.1 容器元素的初始化 265
9.1.2 容器內元素的類型約束 267
9.2 迭代器和迭代器範圍 268
9.2.1 迭代器範圍 270
9.2.2 使迭代器失效的容器操作 271
9.3 順序容器的操作 272
9.3.1 容器定義的類型別名 272
9.3.2 begin和end成員 273
9.3.3 在順序容器中添加元素 273
9.3.4 關係操作符 277
9.3.5 容器大小的操作 278
9.3.6 訪問元素 279
9.3.7 刪除元素 280
9.3.8 賦值與swap 282
9.4 vector容器的自增長 284
9.5 容器的選用 287
9.6 再談string類型 289
9.6.1 構造string對象的其他方法 290
9.6.2 修改string對象的其他方法 292
9.6.3 只適用於string類型的操作 293
9.6.4 string類型的尋找操作 295
9.6.5 string對象的比較 298
9.7 容器適配器 300
9.7.1 棧適配器 301
9.7.2 隊列和優先順序隊列 302
小結 303
術語 303
第10章 關聯容器 305
10.1 引言:pair類型 306
10.2 關聯容器 308
10.3 map類型 309
10.3.1 map對象的定義 309
10.3.2 map定義的類型 310
10.3.3 給map添加元素 311
10.3.4 使用下標訪問map對象 311
10.3.5 map::insert的使用 313
10.3.6 尋找並讀取map中的元素 315
10.3.7 從map對象中刪除元素 316
10.3.8 map對象的迭代遍曆 316
10.3.9 “單詞轉換”map對象 317
10.4 set類型 319
10.4.1 set容器的定義和使用 319
10.4.2 建立“單詞排除”集 321
10.5 multimap和multiset類型 322
10.5.1 元素的添加和刪除 322
10.5.2 在multimap和multiset中尋找元素 323
10.6 容器的綜合應用:文字查詢程式 325
10.6.1 查詢程式的設計 326
10.6.2 TextQuery類 327
10.6.3 TextQuery類的使用 328
10.6.4 編寫成員函數 330
小結 332
術語 332
第11章 泛型演算法 335
11.1 概述 336
11.2 初窺演算法 339
11.2.1 唯讀演算法 339
11.2.2 寫容器元素的演算法 341
11.2.3 對容器元素重新排序的演算法 343
11.3 再談迭代器 347
11.3.1 插入迭代器 348
11.3.2 iostream迭代器 349
11.3.3 反向迭代器 353
11.3.4 const迭代器 355
11.3.5 五種迭代器 356
11.4 泛型演算法的結構 358
11.4.1 演算法的形參模式 359
11.4.2 演算法的命名規範 359
11.5 容器特有的演算法 361
小結 362
術語 363
第三部分 類和資料抽象
第12章 類 367
12.1 類的定義和聲明 368
12.1.1 類定義:扼要重述 368
12.1.2 資料抽象和封裝 369
12.1.3 關於類定義的更多內容 372
12.1.4 類聲明與類定義 374
12.1.5 類對象 375
12.2 隱含的this指標 376
12.3 類範圍 380
12.4 建構函式 385
12.4.1 建構函式初始化式 387
12.4.2 預設實參與建構函式 391
12.4.3 預設建構函式 392
12.4.4 隱式類類型轉換 393
12.4.5 類成員的顯式初始化 396
12.5 友元 396
12.6 static類成員 398
12.6.1 static成員函數 400
12.6.2 static資料成員 400
小結 403
術語 403
第13章 複製控制 405
13.1 複製建構函式 406
13.1.1 合成的複製建構函式 409
13.1.2 定義自己的複製建構函式 409
13.1.3 禁止複製 410
13.2 賦值操作符 411
13.3 解構函式 412
13.4 訊息處理樣本 415
13.5 管理指標成員 419
13.5.1 定義智能指標類 421
13.5.2 定義值型類 425
小結 427
術語 427
第14章 重載操作符與轉換 429
14.1 重載操作符的定義 430
14.2 輸入和輸出操作符 435
14.2.1 輸出操作符[[的重載 435
14.2.2 輸入操作符]]的重載 437
14.3 算術操作符和關係操作符 439
14.3.1 相等操作符 440
14.3.2 關係操作符 441
14.4 賦值操作符 441
14.5 下標操作符 442
14.6 成員訪問操作符 443
14.7 自增操作符和自減操作符 446
14.8 叫用作業符和函數對象 449
14.8.1 將函數對象用於標準庫演算法 450
14.8.2 標準庫定義的函數對象 451
14.8.3 函數對象的函數適配器 453
14.9 轉換與類類型 454
14.9.1 轉換為什麼有用 454
14.9.2 轉換操作符 455
14.9.3 實參匹配和轉換 458
14.9.4 重載確定和類的實參 461
14.9.5 重載、轉換和操作符 464
小結 466
術語 467
第四部分 物件導向編程與泛型程式設計
第15章 物件導向編程 471
15.1 物件導向編程:概述 472
15.2 定義基類和衍生類別 473
15.2.1 定義基類 474
15.2.2 protected成員 475
15.2.3 衍生類別 476
15.2.4 virtual與其他成員函數 479
15.2.5 公用、私人和受保護的繼承 482
15.2.6 友元關係與繼承 486
15.2.7 繼承與靜態成員 486
15.3 轉換與繼承 487
15.3.1 衍生類別到基類的轉換 487
15.3.2 基類到衍生類別的轉換 489
15.4 建構函式和複製控制 490
15.4.1 基類建構函式和複製控制 490
15.4.2 衍生類別建構函式 490
15.4.3 複製控制和繼承 494
15.4.4 虛解構函式 495
15.4.5 建構函式和解構函式中的虛函數 497
15.5 繼承情況下的類範圍 497
15.5.1 名字尋找在編譯時間發生 498
15.5.2 名字衝突與繼承 498
15.5.3 範圍與成員函數 499
15.5.4 虛函數與範圍 500
15.6 純虛函數 502
15.7 容器與繼承 503
15.8 控制代碼類與繼承 504
15.8.1 指標型控制代碼 505
15.8.2 複製未知類型 507
15.8.3 控制代碼的使用 508
15.9 再談文字查詢樣本 511
15.9.1 物件導向的解決方案 513
15.9.2 值型控制代碼 514
15.9.3 Query_base類 515
15.9.4 Query控制代碼類 516
15.9.5 衍生類別 518
15.9.6 eval函數 520
小結 522
術語 523
第16章 模板與泛型程式設計 525
16.1 模板定義 526
16.1.1 定義函數模板 526
16.1.2 定義類模板 528
16.1.3 模板形參 529
16.1.4 模板類型形參 531
16.1.5 非類型模板形參 533
16.1.6 編寫泛型程式 534
16.2 執行個體化 535
16.2.1 模板實參推斷 537
16.2.2 函數模板的顯式實參 540
16.3 模板編譯模型 542
16.4 類模板成員 545
16.4.1 類模板成員函數 548
16.4.2 非類型形參的模板實參 551
16.4.3 類模板中的友元聲明 552
16.4.4 Queue和QueueItem的友元聲明 554
16.4.5 成員模板 556
16.4.6 完整的Queue類 558
16.4.7 類模板的static成員 559
16.5 一個泛型控制代碼類 560
16.5.1 定義控制代碼類 561
16.5.2 使用控制代碼 562
16.6 模板特化 564
16.6.1 函數模板的特化 565
16.6.2 類模板的特化 567
16.6.3 特化成員而不特化類 569
16.6.4 類模板的部分特化 570
16.7 重載與函數模板 570
小結 573
術語 574
第五部分 進階主題
第17章 用於大型程式的工具 579
17.1 異常處理 580
17.1.1 拋出類類型的異常 581
17.1.2 棧展開 582
17.1.3 捕獲異常 583
17.1.4 重新拋出 585
17.1.5 捕獲所有異常的處理代碼 586
17.1.6 函數測試塊與建構函式 586
17.1.7 異常類層次 587
17.1.8 自動資源釋放 589
17.1.9 auto_ptr類 591
17.1.10 異常說明 595
17.1.11 函數指標的異常說明 598
17.2 命名空間 599
17.2.1 命名空間的定義 599
17.2.2 嵌套命名空間 603
17.2.3 未命名的命名空間 604
17.2.4 命名空間成員的使用 606
17.2.5 類、命名空間和範圍 609
17.2.6 重載與命名空間 612
17.2.7 命名空間與模板 614
17.3 多重繼承與虛繼承 614
17.3.1 多重繼承 615
17.3.2 轉換與多個基類 617
17.3.3 多重繼承衍生類別的複製控制 619
17.3.4 多重繼承下的類範圍 620
17.3.5 虛繼承 622
17.3.6 虛基類的聲明 624
17.3.7 特殊的初始化語義 625
小結 628
術語 628
第18章 特殊工具與技術 631
18.1 最佳化記憶體配置 632
18.1.1 C++中的記憶體配置 632
18.1.2 allocator類 633
18.1.3 operator new函數和operator delete函數 636
18.1.4 定位new運算式 638
18.1.5 顯式解構函式的調用 639
18.1.6 類特定的new和delete 639
18.1.7 一個記憶體 Clerk基類 641
18.2 運行時類型識別 646
18.2.1 dynamic_cast操作符 647
18.2.2 typeid操作符 649
18.2.3 RTTI的使用 650
18.2.4 type_info類 652
18.3 類成員的指標 653
18.3.1 聲明成員指標 653
18.3.2 使用類成員的指標 655
18.4 嵌套類 658
18.4.1 嵌套類的實現 658
18.4.2 嵌套類範圍中的名字尋找 661
18.5 聯合:節省空間的類 662
18.6 局部類 665
18.7 固有的不可移植的特徵 666
18.7.1 位域 666
18.7.2 volatile限定符 668
18.7.3 連結指示:extern "C" 669
小結 672
術語 673
附錄 標準庫 675
索引 703
C++編程規範 747