日韩偷拍一区二区,国产香蕉久久精品综合网,亚洲激情五月婷婷,欧美日韩国产不卡

在線客服
C++ Primer Plus中文版(第6版)圖書
人氣:65

C++ Primer Plus中文版(第6版)

暢銷20余年的C++編程入門教程 近百萬程序員的C++編程啟蒙教程 技術大牛案頭常備的工具書 針對C++11標準庫更新 蔡學鏞 孟巖 高博傾力推薦

內容簡介

C 是在 C 語言基礎上開發的一種集面向對象編程、泛型編程和過程化編程于一體的編程語言,是C語言的超集。《C Primer Plus(第6版)中文版》是根據2003年的ISO/ANSI C 標準編寫的,通過大量短小精悍的程序詳細而地闡述了 C 的基本概念和技術,并專辟一章介紹了C 11新增的功能。

全書分18章和10個附錄。分別介紹了C 程序的運行方式、基本數據類型、復合數據類型、循環和關系表達式、分支語句和邏輯運算符、函數重載和函數模板、內存模型和名稱空間、類的設計和使用、多態、虛函數、動態內存分配、繼承、代碼重用、友元、異常處理技術、string類和標準模板庫、輸入/輸出、C 11新增功能等內容。

《C Primer Plus(第6版)中文版》針對C 初學者,書中從C語言基礎知識開始介紹,然后在此基礎上詳細闡述C 新增的特性,因此不要求讀者有C語言方面的背景知識。本書可作為高等院校教授C 課程的教材,也可供初學者自學C 時使用。

編輯推薦

一本經久不衰的C 暢銷經典教程;首本支持C 11新標準的程序設計圖書。

它被譽為“開發人員學習C 的必備教程,沒有之一”! Amazon網站“Language”類銷售排名第三的超級暢銷書,之前版本在美國銷售超10萬!

《C Primer Plus(第6版)中文版》可以說是一本面向從未學習過C語言甚至是從未學習過編程的人的入門書籍,它的首章從基礎內容講起,先介紹了傳統編程的規則,后面才著重講解有關面向對象——C 的精髓之一——的有關內容。整個書的結構安排較為合理,難度爬升較慢。

如果你是一個從未學過C語言(或者壓根沒學會C)的讀者,那么,我相信這本書更適合你。

作者簡介

Stephen Prata在美國加州肯特菲爾得的馬林學院教授天文、物理和計算機科學。他畢業于加州理工學院,在美國加州大學伯克利分校獲得博士學位。他單獨或與他人合 作編寫的編程圖書有十多本,其中《New C Primer Plus》獲得了計算機出版聯合會1990年度“How-to”計算機圖書獎,《C Primer Plus》獲得了計算機出版聯合會1991年度“How-to”計算機圖書獎提名。

目錄

第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.3.1 C 的發展 6

1.3.2 本書遵循的C 標準 6

1.4 程序創建的技巧 6

1.4.1 創建源代碼文件 7

1.4.2 編譯和鏈接 8

1.5 總結 10

第2章 開始學習C 12

2.1 進入C 12

2.1.1 main()函數 13

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 函數變體 29

2.4.3 用戶定義的函數 29

2.4.4 用戶定義的有返回值的函數 32

2.4.5 在多函數程序中使用using編譯指令 33

2.5 總結 34

2.6 復習題 35

2.7 編程練習 35

第3章 處理數據 37

3.1 簡單變量 37

3.1.1 變量名 38

3.1.2 整型 39

3.1.3 整型short、int、long和long long 39

3.1.4 無符號類型 43

3.1.5 選擇整型類型 45

3.1.6 整型字面值 45

3.1.7 C 如何確定常量的類型 47

3.1.8 char類型:字符和小整數 47

3.1.9 bool類型 53

3.2 const限定符 54

3.3 浮點數 55

3.3.1 書寫浮點數 55

3.3.2 浮點類型 56

3.3.3 浮點常量 58

3.3.4 浮點數的優缺點 58

3.4 C 算術運算符 59

3.4.1 運算符優先級和結合性 60

3.4.2 除法分支 60

3.4.3 求模運算符 61

3.4.4 類型轉換 62

3.4.5 C 11中的auto聲明 66

3.5 總結 67

3.6 復習題 67

3.7 編程練習 68

第4章 復合類型 70

4.1 數組 70

4.1.1 程序說明 72

4.1.2 數組的初始化規則 73

4.1.3 C 11數組初始化方法 73

4.2 字符串 74

4.2.1 拼接字符串常量 75

4.2.2 在數組中使用字符串 76

4.2.3 字符串輸入 77

4.2.4 每次讀取一行字符串輸入 78

4.2.5 混合輸入字符串和數字 81

4.3 string類簡介 82

4.3.1 C 11字符串初始化 83

4.3.2 賦值、拼接和附加 83

4.3.3 string類的其他操作 84

4.3.4 string類I/O 86

4.3.5 其他形式的字符串字面值 87

4.4 結構簡介 88

4.4.1 在程序中使用結構 89

4.4.2 C 11結構初始化 91

4.4.3 結構可以將string類作為成員嗎 91

4.4.4 其他結構屬性 91

4.4.5 結構數組 93

4.4.6 結構中的位字段 94

4.5 共用體 94

4.6 枚舉 95

4.6.1 設置枚舉量的值 97

4.6.2 枚舉的取值范圍 97

4.7 指針和自由存儲空間 97

4.7.1 聲明和初始化指針 100

4.7.2 指針的危險 101

4.7.3 指針和數字 102

4.7.4 使用new來分配內存 102

4.7.5 使用delete釋放內存 104

4.7.6 使用new來創建動態數組 104

4.8 指針、數組和指針算術 106

4.8.1 程序說明 107

4.8.2 指針小結 109

4.8.3 指針和字符串 111

4.8.4 使用new創建動態結構 114

4.8.5 自動存儲、靜態存儲和動態存儲 117

4.9 類型組合 118

4.10 數組的替代品 120

4.10.1 模板類vector 120

4.10.2 模板類array(C 11) 120

4.10.3 比較數組、vector對象和array對象 120

4.11 總結 122

4.12 復習題 123

4.13 編程練習 123

第5章 循環和關系表達式 125

5.1 for循環 125

5.1.1 for循環的組成部分 126

5.1.2 回到for循環 131

5.1.3 修改步長 132

5.1.4 使用for循環訪問字符串 133

5.1.5 遞增運算符( )和遞減運算符(--) 133

5.1.6 副作用和順序點 134

5.1.7 前綴格式和后綴格式 135

5.1.8 遞增/遞減運算符和指針 135

5.1.9 組合賦值運算符 136

5.1.10 復合語句(語句塊) 136

5.1.11 其他語法技巧——逗號運算符 138

5.1.12 關系表達式 140

5.1.13 賦值、比較和可能犯的錯誤 141

5.1.14 C-風格字符串的比較 142

5.1.15 比較string類字符串 144

5.2 while循環 145

5.2.1 for與while 147

5.2.2 等待一段時間:編寫延時循環 148

5.3 do while循環 150

5.4 基于范圍的for循環(C 11) 152

5.5 循環和文本輸入 152

5.5.1 使用原始的cin進行輸入 152

5.5.2 使用cin.get(char)進行補救 153

5.5.3 使用哪一個cin.get() 154

5.5.4 文件尾條件 155

5.5.5 另一個cin.get()版本 157

5.6 嵌套循環和二維數組 159

5.6.1 初始化二維數組 160

5.6.2 使用二維數組 160

5.7 總結 162

5.8 復習題 163

5.9 編程練習 163

第6章 分支語句和邏輯運算符 165

6.1 if語句 165

6.1.1 if else語句 167

6.1.2 格式化if else語句 168

6.1.3 if else if else結構 169

6.2 邏輯表達式 170

6.2.1 邏輯OR運算符:|| 171

6.2.2 邏輯AND運算符:&& 172

6.2.3 用&&來設置取值范圍 174

6.2.4 邏輯NOT運算符:! 175

6.2.5 邏輯運算符細節 176

6.2.6 其他表示方式 177

6.3 字符函數庫cctype 177

6.4 ?:運算符 179

6.5 switch語句 180

6.5.1 將枚舉量用作標簽 183

6.5.2 switch和if else 184

6.6 break和continue語句 185

6.7 讀取數字的循環 187

6.8 簡單文件輸入/輸出 190

6.8.1 文本I/O和文本文件 190

6.8.2 寫入到文本文件中 191

6.8.3 讀取文本文件 194

6.9 總結 197

6.10 復習題 198

6.11 編程練習 199

第7章 函數——C 的編程模塊 202

7.1 復習函數的基本知識 202

7.1.1 定義函數 203

7.1.2 函數原型和函數調用 205

7.2 函數參數和按值傳遞 207

7.2.1 多個參數 208

7.2.2 另外一個接受兩個參數的函數 210

7.3 函數和數組 212

7.3.1 函數如何使用指針來處理數組 213

7.3.2 將數組作為參數意味著什么 213

7.3.3 更多數組函數示例 215

7.3.4 使用數組區間的函數 220

7.3.5 指針和const 221

7.4 函數和二維數組 224

7.5 函數和C-風格字符串 225

7.5.1 將C-風格字符串作為參數的函數 225

7.5.2 返回C-風格字符串的函數 227

7.6 函數和結構 228

7.6.1 傳遞和返回結構 228

7.6.2 另一個處理結構的函數示例 230

7.6.3 傳遞結構的地址 234

7.7 函數和string對象 235

7.8 函數與array對象 236

7.9 遞歸 238

7.9.1 包含一個遞歸調用的遞歸 239

7.9.2 包含多個遞歸調用的遞歸 240

7.10 函數指針 241

7.10.1 函數指針的基礎知識 241

7.10.2 函數指針示例 243

7.10.3 深入探討函數指針 244

7.10.4 使用typedef進行簡化 248

7.11 總結 248

7.12 復習題 249

7.13 編程練習 250

第8章 函數探幽 253

8.1 C 內聯函數 253

8.2 引用變量 255

8.2.1 創建引用變量 256

8.2.2 將引用用作函數參數 258

8.2.3 引用的屬性和特別之處 260

8.2.4 將引用用于結構 263

8.2.5 將引用用于類對象 268

8.2.6 對象、繼承和引用 271

8.2.7 何時使用引用參數 274

8.3 默認參數 274

8.4 函數重載 276

8.4.1 重載示例 278

8.4.2 何時使用函數重載 280

8.5 函數模板 281

8.5.1 重載的模板 283

8.5.2 模板的局限性 285

8.5.3 顯式具體化 285

8.5.4 實例化和具體化 288

8.5.5 編譯器選擇使用哪個函數版本 289

8.5.6 模板函數的發展 295

8.6 總結 297

8.7 復習題 297

8.8 編程練習 298

第9章 內存模型和名稱空間 300

9.1 單獨編譯 300

9.2 存儲持續性、作用域和鏈接性 304

9.2.1 作用域和鏈接 305

9.2.2 自動存儲持續性 305

9.2.3 靜態持續變量 309

9.2.4 靜態持續性、外部鏈接性 310

9.2.5 靜態持續性、內部鏈接性 313

9.2.6 靜態存儲持續性、無鏈接性 315

9.2.7 說明符和限定符 317

9.2.8 函數和鏈接性 318

9.2.9 語言鏈接性 319

9.2.10 存儲方案和動態分配 319

9.3 名稱空間 324

9.3.1 傳統的C 名稱空間 324

9.3.2 新的名稱空間特性 325

9.3.3 名稱空間示例 331

9.3.4 名稱空間及其前途 334

9.4 總結 335

9.5 復習題 335

9.6 編程練習 338

第10章 對象和類 340

10.1 過程性編程和面向對象編程 340

10.2 抽象和類 341

10.2.1 類型是什么 341

10.2.2 C 中的類 342

10.2.3 實現類成員函數 345

10.2.4 使用類 349

10.2.5 修改實現 350

10.2.6 小結 351

10.3 類的構造函數和析構函數 352

10.3.1 聲明和定義構造函數 353

10.3.2 使用構造函數 354

10.3.3 默認構造函數 354

10.3.4 析構函數 355

10.3.5 改進Stock類 356

10.3.6 構造函數和析構函數小結 362

10.4 this指針 363

10.5 對象數組 368

10.6 類作用域 370

10.6.1 作用域為類的常量 371

10.6.2 作用域內枚舉(C 11) 372

10.7 抽象數據類型 373

10.8 總結 376

10.9 復習題 377

10.10 編程練習 377

第11章 使用類 380

11.1 運算符重載 380

11.2 計算時間:一個運算符重載示例 381

11.2.1 添加加法運算符 384

11.2.2 重載限制 387

11.2.3 其他重載運算符 388

11.3 友元 390

11.3.1 創建友元 391

11.3.2 常用的友元:重載

11.4 重載運算符:作為成員函數還是非成員函數 397

11.5 再談重載:一個矢量類 398

11.5.1 使用狀態成員 404

11.5.2 為Vector類重載算術運算符 406

11.5.3 對實現的說明 408

11.5.4 使用Vector類來模擬隨機漫步 408

11.6 類的自動轉換和強制類型轉換 411

11.6.1 轉換函數 415

11.6.2 轉換函數和友元函數 419

11.7 總結 421

11.8 復習題 422

11.9 編程練習 422

第12章 類和動態內存分配 425

12.1 動態內存和類 425

12.1.1 復習示例和靜態類成員 425

12.1.2 特殊成員函數 432

12.1.3 回到Stringbad:復制構造函數的哪里出了問題 434

12.1.4 Stringbad的其他問題:賦值運算符 436

12.2 改進后的新String類 437

12.2.1 修訂后的默認構造函數 438

12.2.2 比較成員函數 439

12.2.3 使用中括號表示法訪問字符 439

12.2.4 靜態類成員函數 441

12.2.5 進一步重載賦值運算符 441

12.3 在構造函數中使用new時應注意的事項 446

12.3.1 應該和不應該 447

12.3.2 包含類成員的類的逐成員復制 448

12.4 有關返回對象的說明 449

12.4.1 返回指向const對象的引用 449

12.4.2 返回指向非const對象的引用 449

12.4.3 返回對象 450

12.4.4 返回const對象 450

12.5 使用指向對象的指針 451

12.5.1 再談new和delete 453

12.5.2 指針和對象小結 454

12.5.3 再談定位new運算符 456

12.6 復習各種技術 459

12.6.1 重載

12.6.2 轉換函數 460

12.6.3 其構造函數使用new的類 460

12.7 隊列模擬 460

12.7.1 隊列類 461

12.7.2 Customer類 468

12.7.3 ATM模擬 471

12.8 總結 475

12.9 復習題 476

12.10 編程練習 477

第13章 類繼承 480

13.1 一個簡單的基類 481

13.1.1 派生一個類 482

13.1.2 構造函數:訪問權限的考慮 484

13.1.3 使用派生類 486

13.1.4 派生類和基類之間的特殊關系 488

13.2 繼承:is-a關系 489

13.3 多態公有繼承 490

13.4 靜態聯編和動態聯編 501

13.4.1 指針和引用類型的兼容性 502

13.4.2 虛成員函數和動態聯編 503

13.4.3 有關虛函數注意事項 505

13.5 訪問控制:protected 507

13.6 抽象基類 508

13.6.1 應用ABC概念 510

13.6.2 ABC理念 516

13.7 繼承和動態內存分配 516

13.7.1 及時種情況:派生類不使用new 516

13.7.2 第二種情況:派生類使用new 517

13.7.3 使用動態內存分配和友元的繼承示例 519

13.8 類設計回顧 523

13.8.1 編譯器生成的成員函數 523

13.8.2 其他的類方法 524

13.8.3 公有繼承的考慮因素 527

13.8.4 類函數小結 530

13.9 總結 530

13.10 復習題 531

13.11 編程練習 531

第14章 C 中的代碼重用 534

14.1 包含對象成員的類 534

14.1.1 valarray類簡介 535

14.1.2 Student類的設計 535

14.1.3 Student類示例 537

14.2 私有繼承 543

14.2.1 Student類示例(新版本) 543

14.2.2 使用包含還是私有繼承 549

14.2.3 保護繼承 549

14.2.4 使用using重新定義訪問權限 550

14.3 多重繼承 551

14.3.1 有多少Worker 555

14.3.2 哪個方法 558

14.3.3 MI小結 567

14.4 類模板 567

14.4.1 定義類模板 568

14.4.2 使用模板類 570

14.4.3 深入探討模板類 572

14.4.4 數組模板示例和非類型參數 577

14.4.5 模板多功能性 578

14.4.6 模板的具體化 582

14.4.7 成員模板 584

14.4.8 將模板用作參數 586

14.4.9 模板類和友元 588

14.4.10 模板別名(C 11) 593

14.5 總結 594

14.6 復習題 595

14.7 編程練習 597

第15章 友元、異常和其他 602

15.1 友元 602

15.1.1 友元類 602

15.1.2 友元成員函數 606

15.1.3 其他友元關系 609

15.1.4 共同的友元 610

15.2 嵌套類 611

15.2.1 嵌套類和訪問權限 612

15.2.2 模板中的嵌套 613

15.3 異常 616

15.3.1 調用abort() 616

15.3.2 返回錯誤碼 617

15.3.3 異常機制 619

15.3.4 將對象用作異常類型 621

15.3.5 異常規范和C 11 624

15.3.6 棧解退 625

15.3

在線預覽

學習C 是一次探索之旅,因為這種語言容納了好幾種編程范式,其中包括面向對象編程、泛型編程和傳統的過程化編程。本書第 5 版是基于 ISO C 標準編寫的,該標準的官方名稱為 C 99 和 C 03(C 99/C 03),其中2003標準主要是對1999標準的技術修正,并沒有添加任何新功能。C 在不斷發展,編寫本書時,新標準獲得了C 國際標準委員會的批準。在制定期間,該標準名為C 0x,但現已改名為C 11。大多數編譯器都能很好地支持C 99/03,而本書的大多數示例都遵守該標準。有些實現中已顯現了新標準的很多功能,而本書也對這些新功能進行了探索。

本書在介紹C 特性的同時,討論了基本C語言,使兩者成為有機的整體。書中介紹了C 的基本概念,并通過短小精悍的程序來闡明,這些程序都很容易復制和試驗。書中還介紹了輸入和輸出,如何讓程序執行重復性任務,如何讓程序做出選擇,處理數據的多種方式,以及如何使用函數等內容。另外,本書還講述了C 在C語言的基礎上新增的很多特性,包括:

類和對象;

繼承;

多態、虛函數和RTTI(運行階段類型識別);

函數重載;

引用變量;

泛型(獨立于類型的)編程,這種技術是由模板和標準模板庫(STL)提供的;

處理錯誤條件的異常機制;

管理函數、類和變量名的名稱空間。

初級教程方法

大約20年前,《C Primer Plus》開創了優良的初級教程傳統,本書建立在這樣的基礎之上,吸收了其中很多成功的理念。

初級教程應當是友好的、便于使用的指南。

初級教程不要求您已經熟悉相關的編程概念。

初級教程強調的是動手學習,通過簡短、容易輸入的示例闡述一兩個概念。

初級教程用示意圖來解釋概念。

初級教程提供問題和練習來檢驗您對知識的理解,從而適于自學或課堂教學。

基于上述理念,本書幫助您理解這種用途廣泛的語言,并學習如何使用它。

對何時使用某些特性,例如何時使用公共繼承來建立is-a關系,提供了概念方面的指導。

闡釋了常用的C 編程理念和技術。

提供了大量的附注,如提示、警告、注意等。

本書的作者和編輯盡較大的努力使本書簡單、明了、生動有趣。我們的目標是,您閱讀本書后,能夠編寫出、高效的程序,并且覺得這是一種享受。

示例代碼

本書包含大量的示例代碼,其中大部分是完整的程序。和前一版一樣,本書介紹的是通用C ,因此適用于任何計算機、操作系統和編譯器。書中的示例在Windows 7系統、Macintosh OS X系統和Linux系統上進行了測試。

使用了C 11功能的程序要求編譯器支持這些功能,但其他程序可在遵循C 99/03的任何系統上運行。

書中完整程序的源代碼可從配套網站下載,詳情請參閱封底的鏈接信息。

本書內容

本書分為18章和10個附錄。

第1章 預備知識:本章介紹Bjarne Stroustrup如何通過在C語言的基礎上添加對面向對象編程的支持,來創造C 編程語言。討論面向過程語言(如C語言)與面向對象語言(如C )之間的區別。您將了解ANSI/ISO在制定C 標準方面所做的工作。本章還討論了創建C 程序的技巧,介紹了當前幾種C 編譯器使用的方法。,本章介紹了本書的一些約定。

第2章 開始學習C :本章介紹創建簡單C 程序的步驟。您可以學習到main( )函數扮演的角色以及C 程序使用的一些語句。您將使用預定義的cout和cin對象來實現程序輸出和輸入,學習如何創建和使用變量。,本章還將介紹函數—C 的編程模塊。

第3章處理數據:C 提供了內置類型來存儲兩種數據:整數(沒有小數的數字)和浮點數(帶小數的數字)。為滿足程序員的各種需求,C 為每一種數據都提供了幾個類型。本章將要討論這些類型,包括創建變量和編寫各種類型的常量。另外,還將討論C 是如何處理不同類型之間的隱式和顯式轉換的。

第4章復合類型:C 讓程序員能夠使用基本的內置類型來創建更復雜的類型。較高級的形式是類,這將在第9章~第13章討論。本章討論其他形式,包括數組(存儲多個同類型的值)、結構(存儲多個不同類型的值)、指針(標識內存位置)。您還將學習如何創建和存儲文本字符串及如何使用C-風格字符數組和C string類來處理文本輸入和輸出。,還將學習C 處理內存分配的一些方法,其中包括用于顯式地管理內存的new和delete運算符。

第5章 循環和關系表達式:程序經常需要執行重復性操作,為此C 提供了3種循環結構:for循環、while循環和do while循環。這些循環必須知道何時終止,C 的關系運算符使程序員能夠創建測試來引導循環。本章還將介紹如何創建逐字符地讀取和處理輸入的循環。,您將學習如何創建二維數組以及如何使用嵌套循環來處理它們。

第6章 分支語句和邏輯運算符:如果程序可以根據實際情況調整執行,我們就說程序能夠智能地行動。在本章,您將了解到如何使用if、if else和switch語句及條件運算符來控制程序流程,學習如何使用邏輯運算符來表達決策測試。另外,本章還將介紹確定字符關系(如測試字符是數字還是非打印字符)的函數庫cctype。,還將簡要地介紹文件輸入/輸出。

第7章函數—C 的編程模塊:函數是C 的基本編程部件。本章重點介紹C 函數與C函數共同的特性。具體地說,您將復習函數定義的通用格式,了解函數原型是如何提高程序性的。同時,還將學習如何編寫函數來處理數組、字符串和結構。還要學習有關遞歸的知識(即函數在什么情況下調用自身)以及如何用它來實現分而治之的策略。將介紹函數指針,它使程序員能夠通過函數參數來命令函數使用另一個函數。

第8章函數探幽:本章將探索C 中函數新增的特性。您將學習內聯函數,它可以提高程序的執行速度,但會增加程序的長度;還將使用引用變量,它們提供了另一種將信息傳遞給函數的方式。默認參數使函數能夠自動為函數調用中省略的函數參數提供值。函數重載使程序員能夠創建多個參數列表不同的同名函數。類設計中經常使用這些特性。另外,您還將學習函數模板,它們使程序員能夠指定相關函數族的設計。

第9章內存模型和名稱空間:本章討論如何創建多文件程序,介紹分配內存的各種方式、管理內存的各種方式以及作用域、鏈接、名稱空間,這些內容決定了變量在程序的哪些部分是可見的。

第10章對象和類:類是用戶定義的類型,對象(如變量)是類的實例。本章介紹面向對象編程和類設計。對象聲明描述的是存儲在對象中的信息以及可對對象執行的操作(類方法)。對象的某些組成部分對于外界來說是可見的(公有部分),而某些部分卻是隱藏的(私有部分)。特殊的類方法(構造函數和析構函數)在對象創建和釋放時發揮作用。在本章中,您將學習所有這些內容以及其他類知識,了解如何使用類來實現ADT,如棧。

第11章使用類:在本章中,您將深入了解類。首先了解運算符重載,它使程序員能夠定義與類對象一起使用的運算符,如 。還將學習友元函數,這些函數可以訪問外部世界不可訪問的類數據。同時還將了解一些構造函數和重載運算符成員函數是如何被用來管理類類型轉換的。

第12章類和動態內存分配:一般來說,讓類成員指向動態分配的內存很有用。如果程序員在類構造函數中使用new來分配動態內存,就有責任提供適當的析構函數,定義顯式拷貝構造函數和顯式賦值運算符。本章介紹了在程序員沒有提供顯式定義時,將如何隱式地生成成員函數以及這些成員函數的行為。您還將通過使用對象指針,了解隊列模擬問題,擴充類方面的知識。

第13章類繼承:在面向對象編程中,繼承是功能最強大的特性之一,通過繼承,派生類可以繼承基類的特性,可重用基類代碼。本章討論公有繼承,這種繼承模擬了is-a關系,即派生對象是基對象的特例。例如,物理學家是科學家的特例。有些繼承關系是多態的,這意味著相同的方法名稱可能導致依賴于對象類型的行為。要實現這種行為,需要使用一種新的成員函數—虛函數。有時,使用抽象基類是實現繼承關系的方式。本章討論了這些問題,說明了公有繼承在什么情況下合適,在什么情況下不合適。

第14章 C 中的代碼重用:公有繼承只是代碼重用的方式之一。本章將介紹其他幾種方式。如果一個類包含了另一個類的對象,則稱為包含。包含可以用來模擬has-a關系,其中一個類包含另一個類的對象。例如,汽車有馬達。也可以使用私有繼承和保護繼承來模擬這種關系。本章說明了各種方法之間的區別。同時,您還將學習類模板,它讓程序員能夠使用泛型定義類,然后使用模板根據具體類型創建特定的類。例如,棧模板使程序員能夠創建整數棧或字符串棧。,本章還將介紹多重公有繼承,使用這種方式,一個類可以從多個類派生而來。

第15章友元、異常和其他:本章擴展了對友元的討論,討論了友元類和友元成員函數。然后從異常開始介紹了C 的幾項新特性。異常為處理程序異常提供了一種機制,如函數參數值不正確或內存耗盡等。您還將學習RTTI,這種機制用來確定對象類型。,本章還將介紹一種更安全的方法來替代不受限制的強制類型轉換。

第16章 string類和標準模板庫:本章討論C 語言中新增的一些類庫。對于傳統的C-風格字符串來說,string類是一種方便且功能強大的替代方式。auto_ptr類幫助管理動態分配的內存。STL提供了幾種類容器(包括數組、隊列、鏈表、集合和映射)的模板表示。它還提供了高效的泛型算法庫,這些算法可用于STL容器,也可用于常規數組。模板類valarray為數值數組提供了支持。

第17章 輸入、輸出和文件:本章復習C I/O,并討論如何格式化輸出。您將要學習如何使用類方法來確定輸入或輸出流的狀態,了解輸入類型是否匹配或是否檢測到了文件尾。C 使用繼承來派生用于管理文件輸入和輸出的類。您將學習如何打開文件,以進行輸入和輸出,如何在文件中追加數據,如何使用二進制文件,如何獲得對文件的隨機訪問權。,還將學習如何使用標準的I/O方法來讀取和寫入字符串。

第18章探討C 新標準:本章首先復習之前介紹過的幾項C 11新功能,包括新類型、統一的初始化語法、自動類型推斷、新的智能指針以及作用域內枚舉。然后,討論新增的右值引用類型以及如何使用它來實現移動語義。接下來,介紹了新增的類功能、lambda表達式和可變參數模板。,概述了眾多其他的新功能。

附錄A 計數系統:本附錄討論八進制數、十六進制數和二進制數。

附錄B C 保留字:本附錄列出了C 關鍵字。

附錄C ASCII字符集:本附錄列出了ASCII字符集及其十進制、八進制、十六進制和二進制表示。

附錄D 運算符優先級:本附錄按優先級從高到低的順序列出了C 的運算符。

附錄E 其他運算符:本附錄總結了正文中沒有介紹的其他C 運算符,如按位運算符等。

附錄F 模板類string:本附錄總結了string類方法和函數。

附錄G 標準模板庫方法和函數:本附錄總結了STL容器方法和通用的STL算法函數。

附錄H 精選讀物和網上資源:本附錄列出一些參考書,幫助您深入了解C 。

附錄I 轉換為ISO標準C :本附錄提供了從C和老式C 實現到標準C 的轉換指南。

附錄J 復習題答案:本附錄提供各章結尾的復習題的答案。

對教師的提示

本書宗旨之一是,提供一本既可用于自學又可用于教學的書籍。下面是本書在支持教學方面的一些特征。

本書介紹的是通用C ,不依賴于特定實現。

本書內容跟蹤了ISO/ANSI C 標準委員會的工作,并討論了模板、STL、string類、異常、RTTI和名稱空間。

本書不要求學生了解C語言,但如果有一定的編程經驗則更好。

本書內容經過了精心安排,前幾章可以作為對C預備知識的復習一帶而過。

各章都有復習題和編程練習。附錄J提供了復習題的答案。

本書介紹的一些主題很適于計算機科學課程,包括抽象數據類型(ADT)、棧、隊列、簡單鏈表、模擬、泛型編程以及使用遞歸來實現分而治之的策略。

各章都非常簡短,用一周甚至更短的時間就可以學完。

本書討論了何時使用具體的特性以及如何使用它們。例如,把is-a關系的公有繼承同組合、has-a關系的私有繼承聯系起來,討論了何時應使用虛函數以及何時不應使用。

本書約定

為區別不同類型的文本,我們使用了一些印刷上的約定。

代碼行、命令、語句、變量、文件名和程序輸出使用courier new字體:

用戶需要輸入的程序輸入用粗體表示:

語法描述中的占位符用斜體表示。您應使用實際的文件名、參數等替換占位符。

新術語用斜體表示。

旁注:提供更深入的討論和額外的背景知識,幫助闡明主題。

提示:提供特定編程情形下很有幫助的簡單指南。

警告:指出潛在的陷阱。

注意:提供不屬于其他類別的各種說明。

開發本書編程示例時使用的系統

本書的C 11示例是使用Microsoft Visual C 2010和帶Gnu g 4.5.0的Cygwin開發的,它們都運行在64位的Windows 7系統上。其他示例在這些系統上進行了測試,還在OS X 10.6.8系統和Ubuntu Linux系統上分別使用g 4.21和g 4.4.1進行了測試。大多數非C 11示例最初都是在Windows XP Professional系統上使用Microsoft Visual C 2003和Metrowerks CodeWarrior Development Studio 9開發的,并在該系統上使用Borland C 5.5命令行編譯器和GNU gpp 3.3.3進行了測試;其次,在運行SuSE 9.0 Linux的系統上使用Comeau 4.3.3和GNU g 3.3.1進行了測試;,在運行OS 10.3的Macintosh G4上使用Metrowerks Development Studio 9進行了測試。

C 為程序員提供了豐富多彩的內容。祝您學習愉快!

網友評論(不代表本站觀點)

來自速度時**的評論:

很厚實的一本書啊,對于學c++的人來說很不錯薯片是指由馬鈴薯(土豆、香港習慣稱之為薯仔)制成的零食。制作方法是把馬鈴薯切為薄片,然後炸或烤至脆口并加以調味即可。除了最簡單地以鹽來調味外,市面上買到不同口味的薯...

2014-03-30 18:22:18
來自xingxin**的評論:

初學者必備,講解淺顯易懂,兩本primer plus幫我把編程語言的基礎打扎實了,接下去就該看匯編,數據結構,組成原理,操作系統了,然后編譯原理,體系結構,Linux源碼分析,學習的道路還很長。。。

2014-09-09 13:00:10
來自無昵稱**的評論:

書看了大半了,非常不錯!不管有沒有C基礎都可以看,內容循序漸進,講的非常深入,而不單單告訴你如何使用Cpp,個人感覺比另一本第五版的那個好,因為這個更有趣,更深入。希望能給想買的人一些幫助。

2014-06-24 18:46:07
來自當當d響**的評論:

據說是學習c++非常好的一本書,內容豐富,簡單易學。一直都想學習c++,這次書都買了,希望能夠堅持學一學。另外,這本書非常厚,價格也就高了些,一直放在購物車里,直到搞活動才以半價的價格入手了。

2016-11-03 12:09:44
來自匿名用**的評論:

C primerplus 與c++ primer plus有質量問題,可能為以前的退貨。已要求退貨

2017-05-29 13:20:13
來自HL冒冒**的評論:

看了一大半了,感覺知識點很多,但是講的不細,尤其是C++最重要的重載,繼承,多態這些東西。感覺講的比較概括,如果是初學者或者是曾經接觸過C語言的不太建議看這本書。尤其是之前學過C語言的,我建議可以去看C++語言程序設計(第四版)清華大學出的那個,寫的很細,例子也很容易懂。

2014-09-05 16:35:28
來自爸爸媽**的評論:

剛開始看 因為之前學過C語言 感覺這本書寫的很詳細 真的很詳細 唯一不足的是書感覺不是新的 明顯書正面的折被折過

2015-09-09 20:16:16
來自無昵稱**的評論:

C++ primer plus 是一本值得仔細專研的書,內容很充實,全面,只是紙質有點兒薄,在當當網買的應該是正版的,可能是因為書的頁數很多的緣故吧,所以有點兒薄。

2016-08-16 11:13:27
來自對不起**的評論:

一個老程序員推薦的書 還沒開始看 不過看目錄感覺很棒

2017-10-08 15:36:06
來自無昵稱**的評論:

C++ Primer Plus(第6版)中文版(暢銷30年C++必讀經典教程全新升級,蔡學鏞、孟巖、高博傾力推薦) 不錯的書,值得看看。

2017-10-13 08:57:11
來自咪咪70**的評論:

C++ Primer Plus(第6版)中文版(暢銷30年C++必讀經典教程全新升級,蔡學鏞、孟巖、高博傾力推薦) 不錯的書,值得看看。

2016-11-02 10:15:06
來自無昵稱**的評論:

書名弄錯了,反復確認了是c++,還有一本c primer plus ,本來猶豫買c++primer還是這本,看了很多評論后終于下定決心買這本了,希望看了以后能對自己的能力有很大提高

2016-04-26 08:44:34
來自無昵稱**的評論:

很棒,看了C Primer PLus再看C++ Primer PLus

2016-05-04 21:17:24
來自無昵稱**的評論:

紙質很好,很喜歡,看起來很舒服。整本書也不錯,看了幾十頁,蠻好的,介紹的很詳細,有一些計算機語言基礎的人看,會容易理解一些,如果,完全的初學者,可能要花費更多的時間理解,不過這是正常的。整體看,這本書還是相當不錯的。

2016-03-08 09:19:08
來自leafren**的評論:

這本書真的超級贊!質量超好、內容也很全面,現在我還是C 的初學者呢、在老師的教學以及書的輔導下,進步超快的呢^_^,反正是C 系列的好書就對啦

2015-05-09 18:15:10
來自無昵稱**的評論:

這本書對初學者來說比較友好,但是剛開始讀就發現了一處錯誤;當當的包裝極其簡陋,只用一層塑料袋包裹,而且選擇了一家不知名的快遞公司。

2016-10-28 17:27:14
來自無昵稱**的評論:

剛買回來 書挺厚的 書挺新的,白白的紙張,應該是正版吧,雖然紙質不是很厚 里面的內容,大概翻了看了一下,畢竟是從外國那里翻譯過來的,可能會啊存在些差錯,但是,這么厚一本書,能翻譯出來,確實不易, 國外程序要比我們國家研究的早,所以很全,是一本全面學習C的書

2015-07-09 22:09:35
來自無昵稱**的評論:

對于C 11的新標準的介紹不多,對于初學者還是不錯的,推薦購買。

2014-02-06 08:54:06
來自無昵稱**的評論:

怎么說呢,這本書就是有點太厚了,我現在才看啊,,看了四章。 還好啦

2017-04-21 13:26:21
來自無昵稱**的評論:

挺好的書,就是到家得時候書上全是土,書還是能看的,不過下次發東西的時候盡量干凈些

2017-09-15 10:47:44
來自pqvv**的評論:

書的質量沒問題 關鍵是配送這塊 我的是如風達送的 挺快 我說用支付寶付款 快遞小哥說他沒支付寶 只能刷卡或現金 我回來取了卡 拿到貨看到單子上寫著掃碼 我就用支付寶掃了支付成功了 快遞小哥看到覺得好神奇 白讓我跑一趟 希望以后能稍微跟快遞溝通一下 別兩眼一摸黑就說只能刷卡或現金

2016-04-14 11:43:10
來自無昵稱**的評論:

C++中的圣經,個人覺得沒C++基礎先學這本書,在看C++ Primer會更好,讀完這本書,自己才敢說自己真正的叫學過C語言,最好的C++書,沒有之一,讀書完全是在享受C++,這是國內的C++書籍無法比擬的。

2015-03-24 18:08:26
來自匿名用**的評論:

紙質不是很厚 里面的內容,大概翻了看了一下,畢竟是從外國那里翻譯過來的,可能會啊存在些差錯,但是,這么厚一本書,能翻譯出來,確實不易, 國外程序要比我們國家研究的早,所以很全,是一本全面學習C的書

2017-08-26 10:54:24
來自無昵稱**的評論:

這本書講的很詳細,從基礎開始,而且對沒有學過C的同學很有幫助。我學過C,看這本書也是對C的一種復習,并且是C和C++的對比講解,這樣對于從C過度到C++的我來說,可以更好的理解并區分C于C++,相對的可以更快的學習C++。很高興買了這本書

2014-11-11 21:37:12

免責聲明

更多出版社
主站蜘蛛池模板: 穆棱市| SHOW| 子长县| 贺兰县| 昭苏县| 乐至县| 富蕴县| 潮州市| 江阴市| 镶黄旗| 渭源县| 邵阳县| 靖远县| 建宁县| 林口县| 阜阳市| 钦州市| 眉山市| 澄迈县| 定州市| 河间市| 平安县| 天水市| 蒙山县| 镇坪县| 永德县| 宜宾县| 文登市| 辽宁省| 博兴县| 仁怀市| 无极县| 惠州市| 濉溪县| 湖南省| 东方市| 泸州市| 土默特左旗| 富源县| 通许县| 友谊县|