C++程序設計教程(第10版 英文限量版)

[美]保羅·戴特爾(Paul Deitel),[美]哈維·戴特爾(Harvey Deitel)

  • 出版商: 清華大學
  • 出版日期: 2025-06-01
  • 售價: $834
  • 語言: 簡體中文
  • ISBN: 7302692947
  • ISBN-13: 9787302692942
  • 相關分類: C++ 程式語言
  • 下單後立即進貨 (約4週~6週)

  • C++程序設計教程(第10版 英文限量版)-preview-1
  • C++程序設計教程(第10版 英文限量版)-preview-2
  • C++程序設計教程(第10版 英文限量版)-preview-3
C++程序設計教程(第10版 英文限量版)-preview-1

相關主題

商品描述

"本書遵循C++14標準,引入智能指針、標準庫容器、疊代器、類模板等諸多現代語言元素,是一本體現現代C++語言特征的優秀教科書。本書討論結構化編程、面向對象編程和泛型編程3種編程範式,既有C++基礎知識的細節介紹,又有開發大型軟件的能力訓練。書中大量的現實案例研究很具啟發性。本書以C++標準庫類對象構建面向對象程序為切入點,全面介紹面向對象程序設計方法,既符合學習C++程序設計的認知規律,也能滿足現代軟件開發的現實需求。全書引入“實時編碼”教學法,通過完整的、可實際運行的C++程序來介紹程序設計的概念和方法,讓讀者在程序語境中理解程序概念和語言規則。 本書既可作為高等學校程序設計課程的教材和廣大教師教學、學生自學的參考書,也適合希望掌握現代C++編程範式的程序設計愛好者學習使用,還可供正在進行項目準備的軟件開發人員閱讀參考。 "

作者簡介

保羅·戴特爾,是全球暢銷的編程語言教材和專業圖書作家,“How to Program”系列是其極負盛名的一套計算機編程教材,已經銷售近40年,並被翻譯成中文在內的十幾種語言。他們成立的Deitel & Associates公司是一家國際知名的企業培訓和寫作公司,專門進行計算機編程語言、對象技術、移動應用開發及Internet和Web軟件技術方面的培訓和寫作,出版了一流的編程專業的大學教材、 專業圖書以及LiveLessons視頻課程。

目錄大綱

目錄

第1章計算機和C++簡介1

1.1引言2

1.2計算機和互聯網在工業和研究中的應用3

1.3硬件和軟件5

1.3.1摩爾定律5

1.3.2計算機組成6

1.4數據的層次模型7

1.5機器語言、匯編語言和高級語言10

1.6C和C++11

1.7程序設計語言12

1.8對象技術介紹14

1.9典型的C++開發環境17

1.10測試一個C++應用程序20

1.10.1在Windows平臺使用Visual Studio 2015進行編譯和

運行20

1.10.2在Linux平臺使用GNU C++編譯器進行編譯和運行25

1.10.3在Mac OS X平臺使用Xcode進行編譯和運行27

1.11操作系統32

1.11.1Windows——專有操作系統32

1.11.2Linux——開源操作系統32

1.11.3Apple公司的OS X及適用於iPhone、iPad和

iPod Touch設備的iOS33

1.11.4Google公司的Android33

1.12互聯網和萬維網34

1.13軟件開發的一些關鍵術語36

1.14C++11和C++14: C++語言的最新版本38

1.15Boost C++庫39

1.16緊跟信息技術的發展步伐39

第2章C++編程入門、輸入/輸出和運算符44

2.1引言45

2.2第一個C++程序: 輸出一行文本45

2.3修改第一個C++程序49

2.4另一個C++程序: 整數相加50

2.5內存的概念54

2.6算術運算55

2.7判斷: 相等運算符和關系運算符59

2.8本章小結63

第3章類、對象、成員函數和字符串入門73

3.1引言74

3.2測試Account對象75

3.2.1實例化一個對象75

3.2.2頭文件和源文件76

3.2.3調用Account類的getName成員函數76

3.2.4使用getline輸入字符串77

3.2.5調用Account類的setName成員函數77

3.3具有數據成員及Set和Get成員函數的Account類78

3.3.1Account類的定義78

3.3.2關鍵字class和類體79

3.3.3類型為string的數據成員name79

3.3.4setName成員函數80

3.3.5getName成員函數82

3.3.6訪問修飾符private和public82

3.3.7Account類的UML類圖83

3.4Account類: 使用構造函數初始化對象84

3.4.1定義Account構造函數以實現對象初始化85

3.4.2在創建Account對象時自動初始化86

3.4.3具有構造函數的Account類的UML類圖88

3.5具有set和get成員函數的軟件工程88

3.6具有余額屬性的Account類及數據驗證89

3.6.1數據成員balance89

3.6.2具有驗證功能的雙形參構造函數91

3.6.3具有驗證功能的deposit成員函數91

3.6.4getBalance成員函數91

3.6.5操作具有余額屬性的Account對象92

3.6.6具有余額屬性及deposit和getBalance成員函數的

Account類的UML類圖94

3.7本章小結94

第4章算法開發和控制語句(第1部分)103

4.1引言104

4.2算法105

4.3偽代碼105

4.4控制結構106

4.4.1順序結構106

4.4.2選擇語句108

4.4.3循環語句108

4.4.4控制結構小結109

4.5if單分支選擇語句109

4.6if…else雙分支選擇語句110

4.6.1嵌套的if…else語句111

4.6.2else懸掛問題113

4.6.3語句塊113

4.6.4條件運算符(?:)114

4.7Student類: 嵌套的if…else語句115

4.8while循環語句117

4.9構建算法: 計數器控制的循環119

4.9.1計數器控制的循環的偽代碼算法119

4.9.2實現計數器控制的循環120

4.9.3整數除法和截斷的註意事項122

4.9.4算術溢出122

4.9.5輸入驗證123

4.10構建算法: 哨兵控制的循環123

4.10.1自頂向下、逐步求精: 頂層和第一次細化124

4.10.2進行第二次細化124

4.10.3實現哨兵控制的循環126

4.10.4基本數據類型間的顯式和隱式轉換129

4.10.5格式化浮點數130

4.10.6無符號整數和用戶輸入處理130

4.11構建算法: 嵌套的控制語句131

4.11.1問題描述131

4.11.2自頂向下、逐步求精: 頂層的偽代碼表示132

4.11.3自頂向下、逐步求精: 第一次細化132

4.11.4自頂向下、逐步求精: 第二次細化132

4.11.5偽代碼的第二次完整細化133

4.11.6實現偽代碼算法的程序134

4.11.7使用列表初始化防止窄化轉換135

4.12復合賦值運算符136

4.13自增和自減運算符137

4.14基本類型不可移植140

4.15本章小結140

第5章控制語句(第2部分)和邏輯運算符159

5.1引言160

5.2計數器控制的循環的基本要素160

5.3for循環語句161

5.4使用for語句的示例165

5.5應用實例: 偶數求和166

5.6應用實例: 復利計算167

5.7案例研究: 使用DollarAmount類進行基於整數的貨幣計算171

5.7.1演示DollarAmount類172

5.7.2DollarAmount類175

5.8do…while循環語句179

5.9switch多分支選擇語句180

5.10break和continue語句186

5.10.1break語句186

5.10.2continue語句187

5.11邏輯運算符188

5.11.1邏輯與(&&)運算符188

5.11.2邏輯或(||)運算符189

5.11.3短路求值190

5.11.4邏輯非(!)運算符190

5.11.5邏輯運算符示例191

5.12易於混淆的相等(==)和賦值(=)運算符192

5.13結構化編程小結194

5.14本章小結199

第6章函數和遞歸入門211

6.1引言212

6.2C++的程序組件213

6.3數學庫函數214

6.4函數原型215

6.5函數原型和實參類型強制轉換的說明218

6.5.1函數簽名和函數原型219

6.5.2實參類型強制轉換219

6.5.3實參提升規則和隱式轉換219

6.6C++標準庫頭文件220

6.7案例研究: 隨機數生成222

6.7.1投擲六面骰子223

6.7.2投擲6000萬次六面骰子224

6.7.3使用srand函數隨機化隨機數生成器225

6.7.4使用當前時間為隨機數生成器設定種子227

6.7.5對隨機數進行比例縮放和偏移調整227

6.8案例研究: 碰運氣遊戲並引入作用域枚舉228

6.9C++11的隨機數232

6.10作用域規則233

6.11函數調用棧和激活記錄237

6.12內聯函數241

6.13引用和引用形參242

6.14默認實參245

6.15一元作用域解析運算符247

6.16函數重載248

6.17函數模板251

6.18遞歸254

6.19使用遞歸的示例: 斐波那契數列257

6.20遞歸與疊代260

6.21本章小結263

第7章類模板array和vector及捕獲異常283

7.1引言284

7.2array對象284

7.3array對象的聲明286

7.4使用array對象的示例286

7.4.1聲明array對象並使用循環初始化array對象的元素287

7.4.2在聲明中使用初始化列表初始化array對象288

7.4.3使用常量變量指定array對象的大小並用計算結果設置

array對象的元素289

7.4.4求array對象的元素之和290

7.4.5使用條形圖圖形化顯示array對象數據291

7.4.6使用array對象的元素作為計數器292

7.4.7使用array對象匯總調查結果293

7.4.8靜態局部array對象和自動局部array對象296

7.5基於範圍的for語句298

7.6案例研究: 使用array對象存儲成績的GradeBook類300

7.7array對象的排序和查找306

7.7.1排序306

7.7.2查找306

7.7.3sort和binary_search函數的演示306

7.8多維array對象307

7.9案例研究: 使用二維array對象的GradeBook類311

7.10C++標準庫中的vector類模板簡介317

7.11本章小結323

第8章指針339

8.1引言340

8.2指針變量的聲明和初始化341

8.2.1指針的聲明341

8.2.2指針的初始化342

8.2.3C++11之前的空指針342

8.3指針運算符342

8.3.1取地址(&)運算符342

8.3.2間接尋址(*)運算符343

8.3.3使用取地址(&)和間接尋址(*)運算符344

8.4使用指針的引用傳遞345

8.5內置數組349

8.5.1聲明和訪問內置數組349

8.5.2初始化內置數組350

8.5.3向函數傳遞內置數組350

8.5.4聲明內置數組形參351

8.5.5C++11: 標準庫函數begin和end351

8.5.6內置數組的局限性351

8.5.7有時需要內置數組352

8.6使用const修飾指針352

8.6.1指向非常量數據的非常量指針353

8.6.2指向常量數據的非常量指針353

8.6.3指向非常量數據的常量指針354

8.6.4指向常量數據的常量指針355

8.7sizeof運算符356

8.8指針表達式和指針算術運算358

8.8.1指針加上和減去整數359

8.8.2指針相減360

8.8.3指針賦值361

8.8.4不能間接引用void*指針361

8.8.5指針比較361

8.9指針和內置數組之間的關系361

8.9.1指針/偏移量表示法362

8.9.2以內置數組名稱作為指針的指針/偏移量表示法362

8.9.3指針/下標表示法362

8.9.4演示指針和內置數組之間的關系363

8.10基於指針的字符串(選讀)364

8.11關於智能指針的說明367

8.12本章小結367

第9章類的深入剖析385

9.1引言386

9.2Time類案例研究: 將接口和實現分離387

9.2.1類的接口388

9.2.2將接口和實現分離388

9.2.3Time類的定義388

9.2.4Time類的成員函數390

9.2.5作用域解析運算符(::)391

9.2.6在源文件中包含類的頭文件391

9.2.7Time類的成員函數setTime和拋出異常392

9.2.8Time類的成員函數toUniversalString和字符串流處理392

9.2.9Time類的成員函數toStandardString393

9.2.10隱式內聯成員函數393

9.2.11成員函數與全局函數393

9.2.12Time類的使用394

9.2.13對象大小396

9.3編譯和連接過程396

9.4類作用域和訪問類成員398

9.5訪問函數和工具函數399

9.6Time類案例研究: 具有默認實參的構造函數399

9.6.1具有默認實參的構造函數399

9.6.2構造函數重載和C++11委托構造函數404

9.7析構函數405

9.8何時調用構造函數和析構函數405

9.8.1全局作用域對象的構造函數和析構函數406

9.8.2非靜態局部對象的構造函數和析構函數406

9.8.3靜態局部對象的構造函數和析構函數406

9.8.4演示何時調用構造函數和析構函數406

9.9Time類案例研究: 返回對私有數據成員的引用或指針409

9.10默認的逐個成員賦值411

9.11const對象和const成員函數413

9.12組合: 對象作為類的成員415

9.13友元函數和友元類421

9.14使用this指針423

9.14.1隱式和顯式地使用this指針訪問對象的數據成員424

9.14.2使用this指針實現級聯的函數調用425

9.15靜態類成員429

9.15.1使用類範圍數據的動機429

9.15.2靜態數據成員的作用域和初始化429

9.15.3訪問靜態數據成員430

9.15.4靜態數據成員的演示430

9.16本章小結433

第10章運算符重載和string類447

10.1引言448

10.2使用標準庫中string類的重載運算符449

10.3運算符重載基礎453

10.3.1運算符重載不是自動的453

10.3.2不必重載的運算符453

10.3.3不能重載的運算符454

10.3.4運算符重載的規則和限制454

10.4重載二元運算符455

10.5重載二元流插入運算符和流提取運算符455

10.6重載一元運算符459

10.7重載自增和自減運算符460

10.8案例研究: Date類461

10.9動態內存管理466

10.10案例研究: Array類468

10.10.1使用Array類469

10.10.2Array類的定義473

10.11運算符作為成員函數和非成員函數的比較480

10.12類型轉換481

10.13explicit構造函數和轉換運算符482

10.14重載函數調用運算符()485

10.15本章小結485

第11章面向對象編程: 繼承497

11.1引言498

11.2基類和派生類499

11.2.1CommunityMember類的層次結構499

11.2.2Shape類的層次結構500

11.3基類和派生類之間的關系501

11.3.1創建和使用CommissionEmployee類501

11.3.2不使用繼承創建BasePlusCommissionEmployee類506

11.3.3創建CommissionEmployeeBasePlusCommissionEmployee

繼承層次結構511

11.3.4使用protected數據的CommissionEmployee

BasePlusCommissionEmployee繼承層次結構515

11.3.5使用private數據的CommissionEmployee

BasePlusCommissionEmployee繼承層次結構519

11.4派生類中的構造函數和析構函數523

11.5public、protected和private繼承525

11.6本章小結526

第12章面向對象編程: 多態性531

12.1引言532

12.2多態性介紹: 多態視頻遊戲533

12.3類繼承層次中對象之間的關系534

12.3.1從派生類對象調用基類函數534

12.3.2將派生類指針指向基類對象537

12.3.3通過基類指針調用派生類成員函數538

12.4虛函數和虛析構函數540

12.4.1為什麼虛函數是有用的540

12.4.2聲明虛函數540

12.4.3通過基類指針或引用調用虛函數541

12.4.4通過對象名稱調用虛函數541

12.4.5CommissionEmployee層次結構中的虛函數541

12.4.6虛析構函數546

12.4.7C++11: final成員函數和類546

12.5類型域和switch語句547

12.6抽象類和純虛函數547

12.6.1純虛函數548

12.6.2設備驅動程序: 操作系統中的多態性549

12.7案例研究: 使用多態性的工資發放系統549

12.7.1創建抽象基類Employee550

12.7.2創建具體派生類SalariedEmployee553

12.7.3創建具體派生類CommissionEmployee556

12.7.4創建間接具體派生類BasePlusCommissionEmployee558

12.7.5演示多態性的處理過程560

12.8多態性、虛函數和動態綁定的底層實現機制(選讀)563

12.9案例研究: 使用多態性和運行時類型信息(包括向下強制類型轉換、

dynamic_cast、typeid和type_info)的工資發放系統567

12.10本章小結570

第13章輸入/輸出流的深入剖析577

13.1引言578

13.2流579

13.2.1經典流和標準流579

13.2.2iostream庫的頭文件580

13.2.3輸入/輸出流的類和對象580

13.3輸出流581

13.3.1char*變量的輸出581

13.3.2使用put成員函數進行字符輸出582

13.4輸入流582

13.4.1get和getline成員函數583

13.4.2istream的成員函數peek、putback和ignore586

13.4.3類型安全輸入/輸出586

13.5使用read、write和gcount的非格式化輸入/輸出586

13.6流操縱符的深入剖析587

13.6.1整數流的基數(dec、oct、hex和setbase)588

13.6.2浮點精度(precision、setprecision)588

13.6.3字段寬度(width、setw)590

13.6.4用戶自定義輸出流操縱符591

13.7流的格式狀態和流操縱符592

13.7.1尾隨零和小數點(showpoint)593

13.7.2對齊方式(left、right和internal)594

13.7.3內容填充(fill、setfill)595

13.7.4整數流的基數(dec、oct、hex和showbase)597

13.7.5浮點數、科學記數法和定點記數法(scientific、fixed)597

13.7.6大寫/小寫控制(uppercase)598

13.7.7指定布爾格式(boolalpha)599

13.7.8通過flags成員函數設置和重置格式狀態600

13.8流的錯誤狀態601

13.9將輸出流綁定到輸入流604

13.10本章小結605

第14章文件處理615

14.1引言616

14.2文件和流616

14.3創建順序文件617

14.3.1打開一個文件618

14.3.2通過open成員函數打開一個文件619

14.3.3測試一個文件是否被成功打開619

14.3.4重載bool運算符620

14.3.5處理數據620

14.3.6關閉文件620

14.3.7執行樣例621

14.4從順序文件中讀取數據621

14.4.1打開一個文件用於輸入622

14.4.2從文件中讀取數據622

14.4.3文件位置指針622

14.4.4案例研究: 信用查詢程序623

14.5C++14: 讀取和寫入帶引號的文本626

14.6更新順序文件627

14.7隨機訪問文件628

14.8創建隨機訪問文件629

14.8.1使用ostream的成員函數write寫入字節數據629

14.8.2使用reinterpret_cast運算符轉換指針類型629

14.8.3信用處理程序630

14.8.4以二進制模式打開一個文件用於輸出633

14.9向隨機訪問文件隨機寫入數據633

14.9.1以二進制模式打開文件進行輸入/輸出635

14.9.2定位文件位置指針635

14.10從隨機訪問文件中順序讀取數據635

14.11案例研究: 事務處理程序637

14.12對象序列化643

14.13本章小結644

第15章標準庫的容器和疊代器655

15.1引言656

15.2容器簡介658

15.3疊代器簡介662

15.4算法簡介667

15.5序列容器667

15.5.1vector序列容器668

15.5.2list序列容器675

15.5.3deque序列容器680

15.6關聯容器681

15.6.1multiset關聯容器682

15.6.2set關聯容器685

15.6.3multimap關聯容器687

15.6.4map關聯容器689

15.7容器適配器690

15.7.1stack適配器691

15.7.2queue適配器693

15.7.3priority_queue適配器694

15.8bitset類695

15.9本章小結697

第16章標準庫算法707

16.1引言708

16.2對疊代器的最低要求708

16.3lambda表達式710

16.3.1for_each算法711

16.3.2具有空引入符的lambda表達式711

16.3.3具有非空引入符的lambda表達式——捕獲局部變量712

16.3.4lambda表達式的返回類型712

16.4算法712

16.4.1fill、fill_n、generate和generate_n算法712

16.4.2equal、mismatch和lexicographical_compare算法715

16.4.3remove、remove_if、remove_copy和remove_copy_if

算法718

16.4.4replace、replace_if、replace_copy和replace_copy_if算法721

16.4.5數學算法723

16.4.6基本的查找和排序算法726

16.4.7swap、iter_swap和swap_ranges算法731

16.4.8copy_backward、merge、unique和reverse算法732

16.4.9inplace_merge、unique_copy和reverse_copy算法735

16.4.10集合操作737

16.4.11lower_bound、upper_bound和equal_range算法740

16.4.12min、max、minmax和minmax_element算法742

16.5函數對象744

16.6標準庫算法小結747

16.7本章小結749

第17章異常處理的深入剖析757

17.1引言758

17.2異常處理控制流程和定義一個異常類759

17.2.1定義一個異常類來表示可能發生的問題類型759

17.2.2演示異常處理760

17.2.3將代碼封裝在try塊中761

17.2.4定義catch處理程序處理DivideByZeroException異常762

17.2.5異常處理的終止模型762

17.2.6用戶輸入非零分母時的程序控制流程763

17.2.7用戶輸入零分母時的程序控制流程763

17.3重新拋出異常764

17.4棧展開766

17.5何時使用異常處理767

17.6noexcept: 聲明不會拋出異常的函數768

17.7構造函數、析構函數和異常處理768

17.7.1因異常而調用的析構函數768

17.7.2初始化局部對象以獲取資源769

17.8處理new失敗769

17.8.1new在失敗時拋出bad_alloc異常769

17.8.2new在失敗時返回nullptr770

17.8.3使用set_new_handler函數處理new失敗771

17.9unique_ptr類和動態內存管理772

17.9.1unique_ptr的所有權774

17.9.2指向內置數組的unique_ptr775

17.10標準庫的異常層次結構775

17.11本章小結777

第18章自定義模板的介紹783

18.1引言784

18.2類模板785

18.2.1創建類模板StackT786

18.2.2類模板StackT的數據表示787

18.2.3類模板StackT的成員函數787

18.2.4在類模板定義的外部聲明類模板的成員函數788

18.2.5測試類模板StackT788

18.3操作類模板特化對象的函數模板790

18.4非類型形參792

18.5模板類型形參的默認實參792

18.6重載函數模板793

18.7本章小結793

第19章自定義的模板化數據結構797

19.1引言798

19.1.1盡可能優先采用標準庫的容器、疊代器和算法799

19.1.2特別專題: 構建自己的編譯器799

19.2自引用類799

19.3鏈表800

19.3.1測試鏈表的實現802

19.3.2ListNode類模板805

19.3.3List類模板806

19.3.4insertAtFront成員函數809

19.3.5insertAtBack成員函數810

19.3.6removeFromFront成員函數810

19.3.7removeFromBack成員函數811

19.3.8print成員函數812

19.3.9循環鏈表和雙向鏈表813

19.4棧814

19.4.1利用棧和鏈表之間的關系815

19.4.2基於List繼承實現Stack類模板815

19.4.3類模板中的依賴名稱816

19.4.4測試Stack類模板817

19.4.5通過List對象組合實現Stack類模板818

19.5隊列819

19.5.1隊列的應用819

19.5.2基於List繼承實現Queue類模板820

19.5.3測試Queue類模板821

19.6樹823

19.6.1基本術語823

19.6.2二叉查找樹824

19.6.3測試Tree類模板824

19.6.4TreeNode類模板826

19.6.5Tree類模板827

19.6.6Tree成員函數insertNodeHelper829

19.6.7Tree遍歷函數829

19.6.8刪除重復節點830

19.6.9二叉樹練習綜述830

19.7本章小結831

第20章查找和排序841

20.1引言842

20.2查找算法843

20.2.1線性查找843

20.2.2二分查找846

20.3排序算法850

20.3.1插入排序851

20.3.2選擇排序853

20.3.3歸並排序(遞歸實現)855

20.4本章小結862

第21章string類和字符串流處理的深入剖析869

21.1引言870

21.2string對象的賦值和連接871

21.3比較string對象873

21.4子串876

21.5交換string對象876

21.6string對象的特性877

21.7在string對象中查找子串和字符880

21.8在string對象中替換字符881

21.9向string對象插入字符883

21.10轉換為基於指針的char*字符串884

21.11疊代器886

21.12字符串流處理887

21.13C++11數值轉換函數890

21.14本章小結892

第22章位、字符、C字符串和結構體899

22.1引言900

22.2結構體的定義900

22.3typedef和using902

22.4案例研究: 模擬洗牌和發牌902

22.5位運算符905

22.6位域914

22.7字符處理庫918

22.8C字符串操作函數923

22.9C字符串轉換函數930

22.10C字符串處理庫中的搜索函數935

22.11C字符串處理庫中的內存管理函數939

22.12本章小結943

附錄A運算符的優先級和結合性959

附錄BASCII字符集961

附錄C基本數據類型963

附錄D數制965

D.1引言966

D.2將二進制數簡化為八進制數和十六進制數969

D.3將八進制數和十六進制數轉換為二進制數970

D.4將二進制數、八進制數或十六進制數轉換為十進制數970

D.5將十進制數轉換二進制數、八進制數或十六進制數971

D.6二進制負數: 二進制的補碼表示法973

附錄E預處理器979

E.1引言980

E.2#include預處理指令980

E.3#define預處理指令: 符號常量981

E.4#define預處理指令: 宏981

E.5條件編譯983

E.6#error和#pragma預處理指令985

E.7#和##運算符985

E.8預定義的符號常量985

E.9斷言986

E.10小結986

索引991

第23~26章和附錄F~J為補充閱讀內容,可以掃描前言中的二維碼獲取。

第23章其他主題

第24章C++11和C++14: 附加特性

第25章ATM案例研究(第1部分): 基於UML的面向對象設計

第26章ATM案例研究(第2部分): 實現面向對象設計

附錄FC遺留代碼

附錄GUML: 其他圖表類型

附錄H使用Visual Studio調試器

附錄I使用GNU C++調試器

附錄J使用Xcode調試器