C++程序設計:原理與實踐(原書第3版)

[美]本賈尼·斯特勞斯特魯普(Bjarne Stroustrup)著 蔡樂 譯

  • C++程序設計:原理與實踐(原書第3版)-preview-1
  • C++程序設計:原理與實踐(原書第3版)-preview-2
  • C++程序設計:原理與實踐(原書第3版)-preview-3
C++程序設計:原理與實踐(原書第3版)-preview-1

商品描述

"本書從程序設計的基本原理出發,結合豐富的代碼示例與循序漸進的實踐項目,以清晰而直觀的方式闡釋C++語言的核心概念與編程技術,打破單純語法學習的枯燥壁壘。本書重點闡述基礎概念與技術,而非晦澀的語言細節,致力於引導讀者編寫出具備良好可維護性、可供他人使用的優質程序。本書內容涵蓋基礎語法、面向對象與泛型編程、標準庫的使用、錯誤處理策略,以及作者在C++語言設計和教學實踐中積累的諸多案例與心得體會。 本書適合高等院校計算機、軟件工程及相關專業本科生或研究生使用,也可供對C++語言本質和工程實踐感興趣的研究人員及技術開發者閱讀參考。"

作者簡介

 本賈尼·斯特勞斯特魯普(Bjarne Stroustrup),本賈尼·斯特勞斯特魯普(Bjarne Stroustrup)計算機科學家,在德克薩斯A&M大學擔任計算機科學的主席教授。他***的貢獻就是開發了C++程序設計語言。

目錄大綱

目 錄

第0章 致讀者  1

0.1 本書的結構  2

0.2 講授和學習本書的方法  4

0.3 ISO C++標準  7

0.4 PPP支持  10

0.5 作者簡介  11

0.6 參考資料  12

附言  12

第一部分 基礎  13

第1章 Hello, World!  14

1.1 程序  15

1.2 經典的第一個程序  15

1.3 編譯  17

1.4 鏈接  19

1.5 編程環境  20

練習題  21

思考題  22

術語  22

解答題  23

附言  24

第2章 對象、類型和值  25

2.1 輸入  26

2.2 變量  28

2.3 輸入與類型  29

2.4 運算與運算符  30

2.5 賦值與初始化  32

2.6 名稱  36

2.7 類型與對象  38

2.8 類型安全  39

2.9 轉換  40

2.10 類型推導:auto  42

練習題  42

思考題  43

術語  44

解答題  44

附言  45

第3章 計算  46

3.1 計算的定義  47

3.2 目標與工具  48

3.3 表達式  49

3.4 語句  53

3.5 函數  62

3.6 vector  65

3.7 語言特性  70

練習題  70

思考題  71

術語  72

解答題  72

附言  74

第4章 錯誤  75

4.1 引言  76

4.2 錯誤來源  77

4.3 編譯時錯誤  78

4.4 鏈接時錯誤  80

4.5 運行錯誤  80

4.6 異常  85

4.7 避免錯誤、發現錯誤  91

練習題  100

思考題  101

術語  102

解答題  102

附言  104

第5章 寫一個程序  105

5.1 提出問題  106

5.2 分析問題  106

5.3 回到計算器!  109

5.4 重新設計  115

5.5 將語法轉化為代碼  119

5.6 嘗試第一個版本  125

5.7 嘗試第二個版本  129

5.8 標記流  130

5.9 程序結構  135

練習題  136

思考題  136

術語  137

解答題  137

附言  138

第6章 完成一個程序  139

6.1 引言  140

6.2 輸入與輸出  140

6.3 錯誤處理  142

6.4 負數  144

6.5 求余數:%  146

6.6 代碼整理  147

6.7 從錯誤中恢復  152

6.8 變量  154

練習題  162

思考題  163

術語  163

解答題  163

附言  164

第7章 技術細節:函數等  165

7.1 技術細節  166

7.2 聲明與定義  167

7.3 作用域  171

7.4 函數調用與返回  175

7.5 求值順序  189

7.6 命名空間  192

7.7 模塊與頭文件  194

練習題  197

思考題  198

術語  199

解答題  200

附言  201

第8章 技術細節:類及其他  202

8.1 自定義類型  203

8.2 類和成員  204

8.3 接口與實現  204

8.4 類的演化:Date   206

8.5 枚舉類型  213

8.6 運算符重載  215

8.7 類接口  217

練習題  224

思考題  225

術語  225

解答題  225

附言  227

第二部分 輸入和輸出  229

第9章 輸入和輸出流  230

9.1 輸入與輸出  231

9.2 I/O流模型  232

9.3 文件  233

9.4 I/O 錯誤處理  237

9.5 讀取單個值  239

9.6 用戶自定義輸出運算符  244

9.7 用戶自定義輸入運算符  245

9.8 標準輸入循環  245

9.9 讀取結構化文件  247

9.10 格式化  254

9.11 字符串流  260

練習題  261

思考題  262

術語  263

解答題  263

附言  265

第10章 顯示模型  266

10.1 為什麼需要圖形?  267

10.2 顯示模型  267

10.3 第一個示例  268

10.4 使用GUI庫  271

10.5 坐標系  272

10.6 形狀  273

10.7 使用形狀原語  273

10.8 運行第一個示例  281

練習題  284

思考題  284

術語  285

解答題  285

附言  286

第11章 圖形類  287

11.1 圖形類概覽  288

11.2 Point(點)和Line(線)  290

11.3 Lines(多線條)  291

11.4 Color(顏色)  294

11.5 Line_style(線條樣式)  296

11.6 Polyline(折線)  298

11.7 封閉形狀  302

11.8 Text(文本)  312

11.9 Mark(標記)  314

11.10 Image(圖像)  315

練習題  317

思考題  318

術語  318

解答題  319

附言  319

第12章 類設計  320

12.1 設計原則  321

12.2 Shape  325

12.3 基類與派生類  331

12.4 其他Shape函數  338

12.5 面向對象編程的優勢  339

練習題  340

思考題  341

術語  341

解答題  342

附言  343

第13章 繪制函數和數據  344

13.1 引言  345

13.2 繪制簡單函數圖形  345

13.3 Function  348

13.4 Axis(坐標軸)  351

13.5 近似  353

13.6 繪制數據  357

練習題  363

思考題  364

術語  365

解答題  365

附言  366

第14章 圖形用戶界面  367

14.1 用戶界面選擇  368

14.2 Next按鈕  369

14.3 一個簡單的窗口  370

14.4 Button(按鈕)和其他Widget(控件)  372

14.5 一個例子:繪制線條  376

14.6 簡單動畫  382

14.7 調試GUI代碼  384

練習題  386

思考題  386

術語  386

解答題  387

附言  387

第三部分 數據和算法  389

第15章 動態數組與自由存儲區  390

15.1 引言  391

15.2 vector(動態數組)基礎  392

15.3 內存、地址和指針  393

15.4 自由存儲區和指針  396

15.5 析構函數  400

15.6 訪問元素   404

15.7 一個例子:鏈表(list)  405

15.8 this指針  409

練習題  412

思考題  413

術語  414

解答題  414

附言  415

第16章 數組、指針與引用  416

16.1 數組  417

16.2 指針與引用  421

16.3 C風格字符串  423

16.4 指針用法的替代方案  425

16.5 示例:回文  427

練習題  431

思考題  431

術語  432

解答題  432

附言  433

第17章 基礎操作  434

17.1 引言  435

17.2 元素訪問  435

17.3 列表初始化  437

17.4 拷貝與移動  438

17.5 基礎操作  446

17.6 其他有用操作  451

17.7 Vector剩余問題  452

17.8 改變大小  455

17.9 至此我們實現的Vector   459

練習題  461

思考題  461

術語  462

解答題  462

附言  462

第18章 模板與異常  463

18.1 模板  464

18.2 泛化Vector  471

18.3 範圍檢查與異常  474

18.4 資源與異常  478

18.5 資源管理指針  485

練習題  489

思考題  489

術語  490

解答題  490

附言  491

第19章 容器與疊代器  492

19.1 數據的存儲與處理  493

19.2 序列與疊代器  499

19.3 鏈表  502

19.4 再次對Vector進行泛化  506

19.5 示例:一個簡單的文本編輯器  512

19.6 vector、list與string  518

練習題  519

思考題  520

術語  520

解答題  521

附言  522

第20章 映射與集合  523

20.1 關聯容器  524

20.2 map(映射)  524

20.3 unordered_map  530

20.4 計時  532

20.5 set(集合)  535

20.6 容器概覽  536

20.7 範圍(ranges)和疊代器  541

練習題  544

思考題  544

術語  545

解答題  545

附言  546

第21章 算法  547

21.1 標準庫算法  548

21.2 函數對象  553

21.3 數值算法  557

21.4 拷貝  562

21.5 排序和搜索  563

練習題  565

思考題  566

術語  566

解答題  566

附言  567