C++Primer Plus(第五版)

C++Primer Plus(第五版)

《C++Primer Plus(第五版)》的作者是[美]普拉塔(Prata,S.),人民郵電出版社出版。

基本介紹

  • 書名:C++Primer Plus(第五版)
  • 作者:[美]普拉塔(Prata,S.) 著
  • 譯者:孫建春,韋強
  • 出版社:人民郵電出版社 
圖書信息
出版時間:2005-5-1
版 次:1
頁 數:788
字 數:1639000
印刷時間:2005-5-1
I S B N:9787115134165
包 裝:平裝
內容簡介
C++是在C語言基礎上開發的一種集面向對象編程、通用編程和傳統的過程化編程於一體的程式語言,是C語言的超集。本書是根據2003年的ISO/ANSI C++標準編寫的,通過大量短小精悍的程式詳細而全面地闡述了C++的基本概念和技術。
全書分17章和10個附錄,分別介紹了C++程式的運行方式、基本數據類型、複合數據類型、循環和關係表達式、分支語句和邏輯操作符、函式重載和函式模板、記憶體模型和名稱空間、類的設計和使用、多態、虛函式、動態記憶體分配、繼承、代碼重用、友元、異常處理技術、string類和標準模板庫、輸入/輸出等內容。
本書針對C++初學者,從C語言基礎知識開始介紹,然後在此基礎上詳細闡述C++新增的特性,因此不要求讀者有較多C語言方面的背景知識。本書可作為高等院校C++課程的教材,也可供初學者自學C++時使用。
目 錄
第1章 預備知識 1
1.1 C++簡介 1
1.2 C++簡史 2
1.2.1 C語言 2
1.2.2 C語言編程原理 2
1.2.3 面向對象編程 3
1.2.4 C++和通用編程 4
1.2.5 C++的起源 4
1.3 可移植性和標準 5
1.4 程式創建的技巧 6
1.4.1 創建原始碼檔案 7
1.4.2 編譯和連結 8
1.5 總結 11
第2章 開始學習C++ 12
2.1 進入C++ 12
2.1.1 main()函式 14
2.1.2 C++注釋 15
2.1.3 C++預處理器和iostream檔案 16
2.1.4 頭檔案名稱 16
2.1.5 名稱空間 17
2.1.6 使用cout進行C++輸出 18
2.1.7 C++原始碼的格式化 19
2.2 C++語句 21
2.2.1 聲明語句和變數 21
2.2.2 賦值語句 22
2.2.3 cout的新花樣 23
2.3 其他C++語句 23
2.3.1 使用cin 24
2.3.2 使用cout進行拼接 24
2.3.3 類簡介 25
2.4 函式 26
2.4.1 使用有返回值的函式 26
2.4.2 函式變體 28
2.4.3 用戶定義的函式 29
2.4.4 用戶定義的有返回值的函式 31
2.4.5 在多函式程式中使用using編譯指令 32
2.5 總結 33
2.6 複習題 34
2.7 編程練習 34
第3章 處理數據 36
3.1 簡單變數 36
3.1.1 變數名 37
3.1.2 整型 38
3.1.3 short、int和long 38
3.1.4 無符號類型 41
3.1.5 選擇整型類型 43
3.1.6 整型常量 44
3.1.7 C++如何確定常量的類型 45
3.1.8 char類型:字元和小整數 45
3.1.9 新的bool類型 50
3.2 const限定符 51
3.3 浮點數 51
3.3.1 書寫浮點數 52
3.3.2 浮點類型 53
3.3.3 浮點常量 54
3.3.4 浮點數的優缺點 55
3.4 C++算術操作符 55
3.4.1 操作符優先權和結合性 56
3.4.2 除法分支 57
3.4.3 求模操作符 58
3.4.4 類型轉換 59
3.5 總結 62
3.6 複習題 63
3.7 編程練習 63
第4章 複合類型 65
4.1 數組 65
4.2 字元串 68
4.2.1 拼接字元串常量 70
4.2.2 在數組中使用字元串 70
4.2.3 字元串輸入 71
4.2.4 每次讀取一行字元串輸入 72
4.2.5 混合輸入字元串和數字 75
4.3 string類簡介 76
4.3.1 賦值、拼接和附加 77
4.3.2 string類的其他操作 78
4.3.3 string類I/O 79
4.4 結構簡介 81
4.4.1 在程式中使用結構 82
4.4.2 結構可以將string類作為成員嗎 84
4.4.3 其他結構屬性 84
4.4.4 結構數組 85
4.4.5 結構中的位欄位 86
4.5 共用體 86
4.6 枚舉 88
4.6.1 設定枚舉量的值 89
4.6.2 枚舉的取值範圍 89
4.7 指針和自由存儲空間 89
4.7.1 聲明和初始化指針 92
4.7.2 指針的危險 93
4.7.3 指針和數字 93
4.7.4 使用new來分配記憶體 94
4.7.5 使用delete來釋放記憶體 95
4.7.6 使用new來創建動態數組 964.8 指針、數組和指針算術 98
4.8.1 程式說明 99
4.8.2 指針和字元串 101
4.8.3 使用new創建動態結構 104
4.8.4 自動存儲、靜態存儲和動態存儲 107
4.9 總結 108
4.10 複習題 109
4.11 編程練習 109
第5章 循環和關係表達式 111
5.1 for循環 111
5.1.1 for循環的組成部分 112
5.1.2 回到for循環 116
5.1.3 修改步長 118
5.1.4 使用for循環訪問字元串 118
5.1.5 遞增操作符(++)和遞減操作符(--) 119
5.1.6 副作用和順序點 119
5.1.7 前綴格式和後綴格式 120
5.1.8 遞增/遞減操作符和指針 120
5.1.9 組合賦值操作符 121
5.1.10 複合語句(語句塊) 122
5.1.11 逗號操作符(或其他句法技巧) 123
5.2 關係表達式 125
5.2.1 可能犯的錯誤 126
5.2.2 C-風格字元串的比較 127
5.2.3 比較string類字元串 129
5.3 while循環 130
5.3.1 for與while 131
5.3.2 等待一段時間:編寫延時循環 132
5.4 do while循環 134
5.5 循環和文本輸入 136
5.5.1 使用原始的cin進行輸入 136
5.5.2 使用cin.get(char)進行補救 137
5.5.3 使用哪一個cin.get() 138
5.5.4 檔案尾條件 138
5.5.5 另一個cin.get()版本 140
5.6 嵌套循環和二維數組 142
5.7 總結 145
5.8 複習題 145
5.9 編程練習 146
第6章 分支語句和邏輯操作符 148
6.1 if語句 148
6.1.1 if else語句 149
6.1.2 格式化if else語句 151
6.1.3 if else if else結構 152
6.2 邏輯表達式 153
6.2.1 邏輯OR操作符:| | 153
6.2.2 邏輯AND操作符:&& 154
6.2.3 邏輯NOT操作符:! 1576.2.4 邏輯操作符細節 158
6.2.5 其他表示方式 159
6.3 字元函式館cctype 159
6.4 ?:操作符 161
6.5 switch語句 162
6.5.1 將枚舉量用作標籤 165
6.5.2 switch和if else 166
6.6 break和continue語句 166
6.7 讀取數字的循環 168
6.8 簡單檔案輸入/輸出 171
6.8.1 文本I/O和文本檔案 171
6.8.2 寫入到文本檔案中 172
6.8.3 讀取文本檔案 174
6.9 總結 178
6.10 複習題 178
6.11 編程練習 180
第7章 函式——C++的編程模組 182
7.1 複習函式的基本知識 182
7.1.1 定義函式 183
7.1.2 函式原型和函式調用 184
7.2 函式參數和按值傳遞 187
7.2.1 多個參數 188
7.2.2 另外一個接受兩個參數的函式 189
7.3 函式和數組 191
7.3.1 函式如何使用指針來處理數組 192
7.3.2 將數組作為參數意味著什麼 192
7.3.3 更多數組函式範例 194
7.3.4 使用數組區間的函式 198
7.3.5 指針和const 200
7.4 函式和二維數組 202
7.5 函式和C-風格字元串 203
7.5.1 將C-風格字元串作為參數的函式 203
7.5.2 返回C-風格字元串的函式 204
7.6 函式和結構 206
7.6.1 傳遞和返回結構 206
7.6.2 另一個處理結構的函式範例 207
7.6.3 傳遞結構的地址 211
7.7 函式和string對象 212
7.8 遞歸 214
7.8.1 包含一個遞歸調用的遞歸 214
7.8.2 包含多個遞歸調用的遞歸 215
7.9 函式指針 216
7.9.1 函式指針的基礎知識 216
7.9.2 函式指針示例 218
7.10 總結 219
7.11 複習題 220
7.12 編程練習 220
第8章 函式探幽 223
8.1 C++內聯函式 223
8.2 引用變數 225
8.2.1 創建引用變數 225
8.2.2 將引用用作函式參數 227
8.2.3 引用的屬性和特別之處 230
8.2.4 將引用用於結構 232
8.2.5 將引用用於類對象 235
8.2.6 對象、繼承和引用 238
8.2.7 何時使用引用參數 240
8.3 默認參數 240
8.4 函式重載 242
8.4.1 重載範例 243
8.4.2 何時使用函式重載 245
8.5 函式模板 246
8.5.1 重載的模板 248
8.5.2 顯式具體化 250
8.5.3 實例化和具體化 253
8.5.4 編譯器選擇使用哪個函式版本 254
8.6 總結 258
8.7 複習題 258
8.8 編程練習 259
第9章 記憶體模型和名稱空間 261
9.1 單獨編譯 261
9.2 存儲持續性、作用域和連結性 265
9.2.1 作用域和連結 265
9.2.2 自動存儲持續性 266
9.2.3 靜態持續變數 270
9.2.4 說明符和限定符 277
9.2.5 函式和連結性 278
9.2.6 語言連結性 279
9.2.7 存儲方案和動態分配 279
9.3 布局new操作符 280
9.4 名稱空間 282
9.4.1 傳統的C++名稱空間 282
9.4.2 新的名稱空間特性 284
9.4.3 名稱空間範例 289
9.4.4 名稱空間及其前途 292
9.5 總結 292
9.6 複習題 293
9.7 編程練習 295
第10章 對象和類 297
10.1 過程性編程和面向對象編程 297
10.2 抽象和類 298
10.2.1 類型是什麼 298
10.2.2 C++中的類 299
10.2.3 實現類成員函式 302
10.2.4 使用類 306
10.2.5 小結 308
10.3 類的構造函式和析構函式 309
10.3.1 聲明和定義構造函式 309
10.3.2 使用構造函式 310
10.3.3 默認構造函式 311
10.3.4 析構函式 311
10.3.5 改進Stock類 312
10.3.6 構造函式和析構函式小結 317
10.4 this指針 318
10.5 對象數組 322
10.6 接口和實現小結 325
10.7 類作用域 326
10.8 抽象數據類型 327
10.9 總結 331
10.10 複習題 332
10.11 編程練習 332
第11章 使用類 335
11.1 操作符重載 335
11.2 計算時間:一個操作符重載範例 336
11.2.1 添加加法操作符 339
11.2.2 重載限制 341
11.2.3 其他重載操作符 342
11.3 友元簡介 345
11.3.1 創建友元 346
11.3.2 常用的友元:重載<<操作符 347
11.4 重載操作符:作為成員函式還是非成員函式 351
11.5 再談重載:矢量類 352
11.5.1 使用狀態成員 358
11.5.2 為Vector類重載算術操作符 359
11.5.3 對實現的說明 361
11.5.4 使用Vector類來模擬隨機行走 361
11.6 類的自動轉換和強制類型轉換 363
11.6.1 程式說明 367
11.6.2 轉換函式 367
11.6.3 轉換函式和友元函式 37111.7 總結 373
11.8 複習題 374
11.9 編程練習 375
第12章 類和動態記憶體分配 377
12.1 動態記憶體和類 377
12.1.1 複習範例和靜態類成員 378
12.1.2 隱式成員函式 383
12.1.3 改進後的新String類 389
12.1.4 在構造函式中使用new時應注意的事項 397
12.1.5 有關返回對象的說明 399
12.1.6 使用指向對象的指針 401
12.1.7 複習各種技術 408
12.2 佇列模擬 409
12.2.1 佇列類 410
12.2.2 Customer類 417
12.2.3 模擬 420
12.3 總結 423
12.4 複習題 424
12.5 編程練習 425
第13章 類繼承 428
13.1 一個簡單的基類 429
13.1.1 派生一個類 430
13.1.2 構造函式:訪問許可權的考慮 431
13.1.3 使用派生類 433
13.2 派生類和基類之間的特殊關係 435
13.3 繼承——is-a關係 436
13.4 多態公有繼承 438
13.4.1 開發Brass類和BrassPlus類 438
13.4.2 靜態聯編和動態聯編 447
13.4.3 指針和引用類型兼容性 448
13.4.4 虛擬成員函式和動態聯編 449
13.4.5 有關虛函式注意事項 450
13.5 訪問控制:protected 452
13.6 抽象基類 454
13.6.1 套用ABC概念 456
13.6.2 ABC理念 459
13.7 繼承和動態記憶體分配 459
13.7.1 第一種情況:派生類不使用new 460
13.7.2 第二種情況:派生類使用new 460
13.7.3 使用動態記憶體分配和友元的繼承範例 462
13.8 類設計回顧 466
13.8.1 編譯器生成的成員函式 466
13.8.2 其他的類方法 467
13.8.3 公有繼承的考慮因素 469
13.8.4 類函式小結 472
13.9 總結 472
13.10 複習題 473
13.11 編程練習 474
第14章 C++中的代碼重用 477
14.1 包含對象成員的類 477
14.1.1 valarray類簡介 478
14.1.2 Student類的設計 478
14.1.3 Student類範例 479
14.2 私有繼承 485
14.3 多重繼承 492
14.3.1 有多少Worker 496
14.3.2 哪個方法 499
14.3.3 MI小結 507
14.4 類模板 508
14.4.1 定義類模板 508
14.4.2 使用模板類 510
14.4.3 深入探討模板類 512
14.4.4 數組模板範例和非類型參數 517
14.4.5 模板多功能性 518
14.4.6 模板的具體化 521
14.4.7 成員模板 523
14.4.8 將模板用作參數 525
14.4.9 模板類和友元 526
14.5 總結 532
14.6 複習題 533
14.7 編程練習 534
第15章 友元、異常和其他 539
15.1 友元 539
15.1.1 友元類 539
15.1.2 友元成員函式 543
15.1.3 其他友好關係 546
15.2 嵌套類 547
15.2.1 嵌套類和訪問許可權 548
15.2.2 模板中的嵌套 549
15.3 異常 552
15.3.1 調用abort() 552
15.3.2 返回錯誤碼 553
15.3.3 異常機制 554
15.3.4 將對象用作異常類型 557
15.3.5 堆疊解退 560
15.3.6 其他異常特性 564
15.3.7 exception類 566
15.3.8 異常、類和繼承 569
15.3.9 異常何時會迷失方向 573
15.3.10 有關異常的注意事項 575
15.4 RTTI 576
15.4.1 RTTI的用途 576
15.4.2 RTTI的工作原理 576
15.5 類型轉換操作符 583
15.6 總結 585
15.7 複習題 586
15.8 編程練習 587
第16章 string類和標準模板庫 588
16.1 string類 588
16.1.1 構造字元串 588
16.1.2 string類輸入 591
16.1.3 使用字元串 593
16.1.4 string還提供了哪些功能 597
16.2 auto_ptr類 599
16.2.1 使用auto_ptr 599
16.2.2 有關auto_ptr的注意事項 601
16.3 STL 602
16.3.1 vector模板類 602
16.3.2 可對矢量執行的操作 604
16.3.3 對矢量可執行的其他操作 608
16.4 通用編程技術 611
16.4.1 為何使用疊代器 611
16.4.2 疊代器類型 614
16.4.3 疊代器層次結構 615
16.4.4 概念、改進和模型 616
16.4.5 容器種類 620
16.4.6 聯合容器 627
16.5 函式對象 631
16.5.1 函式符概念 632
16.5.2 預定義的函式符 634
16.5.3 自適應函式符和函式適配器 635
16.6 算法 637
16.6.1 算法組 637
16.6.2 算法的通用特徵 638
16.6.3 STL和string類 639
16.6.4 函式和容器方法 640
16.6.5 使用STL 641
16.7 其他庫 644
16.8 總結 648
16.9 複習題 649
16.10 編程練習 650
第17章 輸入、輸出和檔案 651
17.1 C++輸入和輸出概述 651
17.1.1 流和緩衝區 652
17.1.2 流、緩衝區和iostream檔案 653
17.1.3 重定向 655
17.2 使用cout進行輸出 656
17.2.1 重載的<<操作符 656
17.2.2 其他ostream方法 658
17.2.3 刷新輸出緩衝區 660
17.2.4 用cout進行格式化 660
17.3 使用cin進行輸入 672
17.3.1 cin>>如何檢查輸入 673
17.3.2 流狀態 675
17.3.3 其他istream類方法 678
17.3.4 其他istream方法 683
17.4 檔案輸入和輸出 686
17.4.1 簡單的檔案I/O 686
17.4.2 流狀態檢查和is_open() 688
17.4.3 打開多個檔案 68917.4.4 命令行處理技術 689
17.4.5 檔案模式 691
17.4.6 隨機存取 698
17.5 核心格式化 704
17.6 接下來的任務 706
17.7 總結 707
17.8 複習題 707
17.9 編程練習 708
附錄A 計數系統 712
A.1 十進制數 712
A.2 八進制整數 712
A.3 十六進制數 712
A.4 二進制數 713
A.5 二進制和十六進制 714
附錄B C++保留字 715
B.1 C++關鍵字 715
B.2 替代標記 715
B.3 C++庫保留名稱 716
附錄C ASCII字元集 717
附錄D 操作符優先權 721
附錄E 其他操作符 724
E.1 按位操作符 724
E.1.1 移位操作符 724
E.1.2 邏輯按位操作符 725
E.1.3 按位操作符的另一種表示 727
E.1.4 幾種常用的按位操作符技術 727
E.2 成員解除引用操作符 728
附錄F string模板類 732
F.1 13種類型和一個常量 732
F.2 數據信息、構造函式及其他 733
F.2.1 默認構造函式 734
F.2.2 使用數組的構造函式 735
F.2.3 使用部分數組的構造函式 735
F.2.4 複製構造函式 735
F.2.5 使用一個字元的n個副本的構造函式 736
F.2.6 使用區間的構造函式 736
F.2.7 記憶體雜記 736
F.3 字元串存取 737
F.4 基本賦值 737
F.5 字元串搜尋 738
F.5.1 find()系列 738
F.5.2 rfind()系列 738
F.5.3 find_first_of()系列 738
F.5.4 find_last_of()系列 739
F.5.5 find_first_not_of()系列 739
F.5.6 find_last_not_of()系列 739
F.6 比較方法和函式 740
F.7 字元串修改方法 741
F.7.1 用於追加和相加的方法 741
F.7.2 其他賦值方法 741
F.7.3 插入方法 742
F.7.4 清除方法 742
F.7.5 替換方法 742
F.7.6 其他修改方法:copy()和swap() 743
F.8 輸出和輸入 743
附錄G STL方法和函式 744
G.1 所有容器都有的成員 744
G.2 矢量、鍊表和雙端佇列的其他成員 746
G.3 set和map的其他成員 747
G.4 STL函式 748
G.4.1 非修改式序列操作 749
G.4.2 修改式序列操作 751
G.4.3 排序和相關操作 756
G.4.4 數字操作 763
附錄H 精選讀物和網上資源 765
H.1 精選讀物 765
H.2 網上資源 766
附錄I 轉換為ANSI/ISO標準C++ 767
I.1 使用一些預處理器編譯指令的替代品 767
I.1.1 使用const而不是#define來定義常量 767
I.1.2 使用inline而不是# define來定義小型函式 768
I.2 使用函式原型 769
I.3 使用類型轉換 769
I.4 逐漸熟悉C++特性 769
I.5 使用新的頭檔案 769
I.6 使用名稱空間 770
I.7 使用autoptr模板 771
I.8 使用string類 771
I.9 使用STL 771
附錄J 複習題答案 772
第2章複習題答案 772
第3章複習題答案 772
第4章複習題答案 773
第5章複習題答案 774
第6章複習題答案 774
第7章複習題答案 775
第8章複習題答案 777
第9章複習題答案 778
第10章複習題答案 779
第11章複習題答案 780
第12章複習題答案 781
第13章複習題答案 783
第14章複習題答案 784
第15章複習題答案 785
第16章複習題答案 786
第17章複習題答案 786

相關詞條

熱門詞條

聯絡我們