第1章 計算機、Internet和萬維網簡介 1
1.1 簡介 2
1.2 計算機:硬件和軟件 3
1.3 計算機的組成 3
1.4 個人計算、分布式計算和客戶/服務器計算 4
1.5 Internet和萬維網 4
1.6 Web 2.0 4
1.7 機器語言、匯編語言和高級語言 5
1.8 C和C++的曆史 6
1.9 C++標準庫 7
1.10 Java的曆史 8
1.11 FORTRAN、COBOL、Pascal和Ada 8
1.12 BASIC、Visual Basic、Visual C++、C#和.NET 9
1.13 主要的軟件趨勢:對象技術 9
1.14 典型的C++開發環境 10
1.15 關於C++和本書的幾點說明 12
1.16 試運行一個C++應用程序 12
1.17 軟件技術 17
1.18 C++的未來:開源Boost庫、TR1和C++0x 17
1.19 軟件工程實例研究:對象技術和UML介紹 18
1.20 本章小結 21
1.21 Web資源 22
第2章 C++編程入門 30
2.1 簡介 30
2.2 第一個C++程序:打印一行文本 31
2.3 修改第一個C++程序 33
2.4 另一個C++程序:整數相加 34
2.5 內存的概念 38
2.6 算術運算 38
2.7 判斷:相等運算符和關係運算符 41
2.8 本章小結 44
第3章 類和對象介紹 53
3.1 簡介 53
3.2 類、對象、成員函數和數據成員 54
3.3 定義具有成員函數的類 55
3.4 定義具有形參的成員函數 57
3.5 數據成員、set函數和get函數 60
3.6 使用構造函數初始化對象 65
3.7 一個類對應一個獨立文件的可復用性 67
3.8 接口與實現的分離 70
3.9 用set函數確認數據的有效性 74
3.10 本章小結 78
第4章 控製語句(第I部分) 84
4.1 簡介 84
4.2 算法 85
4.3 僞代碼 85
4.4 控製結構 86
4.5 if選擇語句 89
4.6 if...else雙路選擇語句 90
4.7 while循環語句 94
4.8 算法詳述:計數器控製的循環 95
4.9 算法詳述:標記控製的循環 100
4.10 算法詳述:嵌套的控製語句 107
4.11 賦值運算符 111
4.12 自增和自減運算符 112
4.13 本章小結 114
第5章 控製語句(第II部分) 127
5.1 簡介 127
5.2 計數器控製的循環的要素 128
5.3 for循環語句 129
5.4 使用for語句的例子 132
5.5 do...while循環語句 136
5.6 switch多路選擇語句 137
5.7 break和continue語句 144
5.8 邏輯運算符 145
5.9 ==運算符與=運算符的混淆問題 148
5.10 結構化編程小結 149
5.11 本章小結 153
第6章 函數和遞歸入門 162
6.1 簡介 163
6.2 C++的程序組件 163
6.3 數學庫函數 164
6.4 多形參函數定義 165
6.5 函數原型和實參類型的強製轉換 168
6.6 C++標準庫頭文件 170
6.7 實例研究:隨機數生成 171
6.8 實例研究:博彩遊戲和enum簡介 175
6.9 存儲類彆 178
6.10 作用域規則 180
6.11 函數調用堆棧和活動記錄 182
6.12 無參函數 185
6.13 內聯函數 186
6.14 引用和引用形參 187
6.15 默認實參 190
6.16 一元作用域分辨運算符 191
6.17 函數重載 192
6.18 函數模闆 194
6.19 遞歸 196
6.20 遞歸應用示例:Fibonacci數列 199
6.21 遞歸與迭代 201
6.22 本章小結 203
第7章 數組與vector 220
7.1 簡介 221
7.2 數組 221
7.3 聲明數組 222
7.4 使用數組的範例 223
7.5 將數組傳遞給函數 233
7.6 實例研究:利用數組存放成績的GradeBook類 236
7.7 采用綫性查找法查找數組 240
7.8 采用插值排序法排序數組 241
7.9 多維數組 243
7.10 實例研究:利用二維數組的GradeBook類 245
7.11 C++標準庫類模闆vector介紹 250
7.12 本章小結 254
第8章 指針 268
8.1 簡介 269
8.2 指針變量的聲明和初始化 269
8.3 指針運算符 270
8.4 使用指針的按引用傳遞方式 272
8.5 使用const修飾指針 275
8.6 使用按引用傳遞方式實現的選擇排序 278
8.7 sizeof運算符 281
8.8 指針錶達式和指針算術運算 283
8.9 指針和數組之間的聯係 285
8.10 基於指針的字符串處理 287
8.11 指針數組 289
8.12 函數指針 289
8.13 本章小結 292
第9章 類的深入剖析(第I部分) 307
9.1 簡介 307
9.2 Time類實例研究 308
9.3 類的作用域和類成員的訪問 313
9.4 接口與實現的分離 314
9.5 訪問函數和工具函數 315
9.6 Time類實例研究:默認實參的構造函數 317
9.7 析構函數 321
9.8 何時調用構造函數和析構函數 321
9.9 Time類實例研究:微妙的陷阱—返迴private數據成員引用 324
9.10 默認的逐個成員賦值 326
9.11 本章小結 327
第10章 類的深入剖析(第II部分) 333
10.1 簡介 333
10.2 const對象和const成員函數 334
10.3 組成:對象作為類的成員 340
10.4 friend函數和friend類 345
10.5 使用this指針 347
10.6 static類成員 351
10.7 數據抽象和信息隱藏 354
10.8 本章小結 356
第11章 運算符重載 361
11.1 簡介 362
11.2 運算符重載的基礎知識 362
11.3 運算符重載的限製 363
11.4 作為類成員函數和全局函數的運算符函數之比較 364
11.5 重載流插入運算符和流提取運算符 365
11.6 重載一元運算符 368
11.7 重載二元運算符 368
11.8 動態內存管理 369
11.9 實例研究:Array類 370
11.10 類型轉換 379
11.11 構建String類 380
11.12 重載++和--運算符 381
11.13 實例研究:Date類 382
11.14 標準庫中的string類 386
11.15 explicit構造函數 388
11.16 代理類 391
11.17 本章小結 393
第12章 麵嚮對象編程:繼承 403
12.1 簡介 404
12.2 基類和派生類 405
12.3 protected成員 406
12.4 基類和派生類之間的關係 407
12.5 派生類中的構造函數和析構函數 428
12.6 public、protected和private繼承 434
12.7 關於繼承的軟件工程 435
12.8 本章小結 436
第13章 麵嚮對象編程:多態性 440
13.1 簡介 441
13.2 多態性實例 442
13.3 類繼承層次中對象之間的關係 443
13.4 類型域和switch語句 455
13.5 抽象類和純virtual函數 456
13.6 實例研究:應用多態性的工資發放係統 457
13.7 (選讀)多態性、virtual函數和動態綁定的底層實現機製 470
13.8 實例研究:應用嚮下強製類型轉換dynamic_cast、typeid和type_info並使用多態性和運行時類型信息的工資發放係統 473
13.9 virtual析構函數 475
13.10 本章小結 476
第14章 模闆 481
14.1 簡介 481
14.2 函數模闆 482
14.3 重載函數模闆 484
14.4 類模闆 485
14.5 類模闆的非類型參數和默認類型 489
14.6 模闆和繼承的注意事項 490
14.7 模闆和友元的注意事項 491
14.8 模闆和靜態成員的注意事項 492
14.9 本章小結 492
第 15章 輸入/輸齣流 496
15.1 簡介 497
15.2 流 497
15.3 輸齣流 500
15.4 輸入流 501
15.5 使用read,write和gcount的非格式化的I/O 504
15.6 流操縱符簡介 505
15.7 流的格式狀態和流操縱符 509
15.8 流的錯誤狀態 515
15.9 將輸齣流連接到輸入流 517
15.10 本章小結 517
第16章 異常處理 526
16.1 簡介 527
16.2 異常處理總覽 527
16.3 實例:處理除數為0的異常 528
16.4 什麼時候使用異常處理 532
16.5 重新拋齣異常 533
16.6 異常規格 534
16.7 處理意料之外的異常 534
16.8 堆棧展開 535
16.9 構造函數、析構函數和異常處理 536
16.10 異常和繼承 537
16.11 處理new失敗 537
16.12 類auto_ptr和動態內存分配 539
16.13 標準庫異常類層次 541
16.14 其他異常處理技術 542
16.15 本章小結 542
第17章 文件處理 548
17.1 簡介 548
17.2 數據層次 549
17.3 文件和流 550
17.4 創建順序文件 551
17.5 從順序文件讀取數據 554
17.6 更新順序文件 558
17.7 隨機存取文件 558
17.8 創建隨機存取文件 559
17.9 嚮隨機存取文件隨機寫入數據 562
17.10 從隨機存取文件順序讀取數據 564
17.11 實例研究:事務處理程序 565
17.12 對象序列化概述 570
17.13 本章小結 570
第18章 string類和字符串流處理 580
18.1 簡介 581
18.2 字符串的賦值和連接 582
18.3 字符串的比較 583
18.4 子串 585
18.5 交換字符串 585
18.6 string類的特徵 586
18.7 查找字符串中的子串和字符 588
18.8 在字符串中替換字符 589
18.9 在字符串中插入字符 591
18.10 轉換成C風格的基於指針的char *字符串 591
18.11 迭代器 592
18.12 字符串流處理 593
18.13 本章小結 595
第19章 搜索和排序 602
19.1 簡介 603
19.2 搜索算法 603
19.3 排序算法 608
19.4 本章小結 614
第 20章 數據結構 619
20.1 簡介 619
20.2 自引用類 620
20.3 動態內存分配和數據結構 621
20.4 鏈錶 621
20.5 堆棧 632
20.6 隊列 635
20.7 樹 638
20.8 本章小結 644
第21章 位、字符、C字符串和結構體 653
21.1 簡介 654
21.2 結構體的定義 654
21.3 初始化結構體 656
21.4 在函數中使用結構體 656
21.5 typedef 656
21.6 示例:洗牌與發牌模擬 656
21.7 位運算符 658
21.8 位域 665
21.9 字符處理庫 668
21.10 基於指針的字符串處理函數 671
21.11 基於指針的字符串轉換函數 677
21.12 基於指針的字符串處理庫中的搜索函數 680
21.13 基於指針的字符串處理庫中的內存函數 683
21.14 本章小結 686
第22章 標準模闆庫 700
22.1 標準模闆庫(STL)簡介 701
22.2 序列容器 709
22.3 關聯容器 719
22.4 容器適配器 725
22.5 算法 728
22.6 bitset類 750
22.7 函數對象 752
22.8 本章小結 755
22.9 Web上的STL資源 755
附錄A 運算符的優先級與結閤律 765
附錄B ASCII字符集 767
附錄C 基本數據類型 768
附錄D 計數係統 769
附錄E 預處理器 779
索引 790
· · · · · · (
收起)