C++入門經典(第3版)

C++入門經典(第3版)

《C++入門經典(第3版)》是2012年清華大學出版社出版的圖書,作者是Ivor Horton。

基本介紹

  • 書名:C++入門經典(第3版)
  • 作者:Ivor Horton
  • ISBN:9787302120629
  • 定價:98元
  • 出版社:清華大學出版社 
  • 出版時間:2012-4-28
  • 裝幀:平裝
內容簡介,作者簡介,目錄,

內容簡介

《C++入門經典(第3版)》詳細介紹了C++的套用和特點。
C++在幾乎所有的計算環境中都非常普及,而且可以用於幾乎所有的應用程式。C++從C中繼承了過程化編程的高效性,並集成了面向對象編程的功能。C++在其標準庫中提供了大量的功能。有許多商業C++庫支持數量眾多的作業系統環境和專業應用程式。但因為它的內容太多了,所以掌握C++並不十分容易。本書詳述了C++語言的各個方面,包括數據類型、程式控制、函式、指針、調試、類、重載、繼承、多態性、模板、異常和輸入輸出等內容。每一章都以前述內容為基礎,每個關鍵點都用具體的示例進行詳細的講解。
本書基本不需要讀者具備任何C++知識,書中包含了理解C++的所有必要知識,讀者可以從頭開始編寫自己的C++程式。本書也適合於具備另一種語言編程經驗但希望全面掌握C++語言的讀者。

作者簡介

Ivor Horton是世界著名的計算機圖書作家,主要從事與編程相關的顧問及撰寫工作,曾幫助無數程式設計師步入編程的殿堂。他曾在IBM工作多年,能使用多種語言進行編程(在多種機器上使用彙編語言和高級語言),設計和實現了實時閉環工業控制系統。Horton擁有豐富的教學經驗

目錄

第1章 基本概念
1.1 程式語言
1.1.1 程式語言簡史
1.1.2 解釋性程式和編譯性程式的執行過程
1.1.3 庫
1.2 C++是一種強大的語言
1.3 一個簡單的C++程式
1.3.1 名稱
1.3.2 命名空間
1.4 關鍵字
1.5 C++語句和語句塊
1.6 程式結構
1.7 從源檔案中創建執行檔
1.7.1 編譯
1.7.2 連結
1.8 C++源字元
1.8.1 通用字元集
1.8.2 三字元序列
1.8.3 轉義序列
1.8.4 語句中的空白
1.9 程式的注釋
1.10 標準庫
1.11 用C++編程
1.12 本章小結
1.13 練習
第2章 基本數據類型和計算
2.1 數據和數據類型
2.2 進行簡單的計算
2.2.1 字面量
2.2.2 整型字面量
2.2.3 整數的算術運算
2.2.4 運算符的優先權和相關性
2.3 使用變數
2.4 整型變數
2.4.1 整型變數類型
2.4.2 整數的取值範圍
2.4.3 整型字面量的類型
2.5 賦值運算符
2.5.1 多次賦值
2.5.2 修改變數的值
2.6 整數的遞增和遞減
2.7 const關鍵字
2.8 整數的數字函式
2.9 浮點數
2.9.1 浮點數的數據類型
2.9.2 浮點數的操作
2.9.3 使用浮點數值
2.9.4 數值函式
2.10 使用字元
2.10.1 字元字面量
2.10.2 初始化char變數
2.10.3 使用擴展字元集
2.11 初始值的函式表示法
2.12 本章小結
2.13 練習
第3章 處理基本數據類型
3.1 混合的表達式
3.1.1 賦值和不同的類型
3.1.2 顯式強制轉換
3.1.3 老式的強制轉換
3.2 確定類型
3.3 按位運算符
3.3.1 移位運算符
3.3.2 位模式下的邏輯運算
3.4 枚舉數據類型
3.4.1 匿名枚舉
3.4.2 在整型和枚舉類型之間強制轉換
3.5 數據類型的同義詞
3.6 變數的生存期
3.6.1 自動變數
3.6.2 定位變數的聲明
3.6.3 全局變數
3.6.4 靜態變數
3.7 特殊的類型修飾符
3.8 聲明外部變數
3.9 優先權和相關性
3.10 本章小結
3.11 練習
第4章選擇和決策 99
4.1比較數據值 99
4.1.1套用比較運算符 100
4.1.2比較浮點數值 102
4.2if語句 102
4.3if-else語句 110
4.4邏輯運算符 114
4.4.1邏輯與運算符 115
4.4.2邏輯或運算符 115
4.4.3邏輯非運算符 115
4.5條件運算符 118
4.6switch語句 120
4.7無條件分支 124
4.8決策語句塊和變數作用域 125
4.9本章小結 126
4.10練習 126
第5章循環 127
5.1理解循環 127
5.2while循環 128
5.3do-while循環 130
5.4for循環 133
5.4.1循環和變數作用域 135
5.4.2用浮點數值控制for循環 137
5.4.3使用更複雜的循環控制表達式 140
5.5嵌套的循環 143
5.6跳過循環疊代 147
5.7循環的中斷 150
5.8本章小結 155
5.9練習 155
第6章數組和字元串 156
6.1數據數組 156
6.1.1使用數組 156
6.1.2初始化數組 161
6.1.3字元數組 164
6.2多維數組 168
6.2.1初始化多維數組 170
6.2.2多維字元數組 172
6.3string類型 174
6.3.1聲明string對象 175
6.3.2使用string對象 177
6.3.3訪問字元串中的字元 179
6.3.4訪問子字元串 182
6.3.5比較字元串 182
6.3.6搜尋字元串 188
6.3.7修改字元串 196
6.4string類型的數組 201
6.5寬字元的字元串 202
6.6本章小結 202
6.7練習 203
第7章指針 204
7.1什麼是指針 204
7.2指針的聲明 205
7.3指針的初始化 210
7.4常量指針和指向常量的指針 220
7.5指針和數組 221
7.5.1指針的算術運算 221
7.5.2使用數組名的指針表示法 224
7.5.3對多維數組使用指針 227
7.5.4C樣式字元串的操作 229
7.6動態記憶體分配 231
7.6.1自由存儲區 232
7.6.2運算符new和delete 232
7.6.3數組的動態記憶體分配 233
7.6.4動態記憶體分配的危險 235
7.6.5轉換指針 241
7.7本章小結 241
7.8練習 242
第8章使用函式編程 243
8.1程式的分解 243
8.2理解函式 245
8.2.1定義函式 245
8.2.2函式的聲明 249
8.3給函式傳送參數 251
8.3.1按值傳送機制 251
8.3.2按引用傳送機制 260
8.3.3main()的參數 264
8.4默認的參數值 265
8.5從函式中返回值 268
8.5.1返回一個指針 268
8.5.2返回一個引用 272
8.5.3從函式中返回新變數 273
8.6內聯函式 273
8.7靜態變數 273
8.8本章小結 276
8.9練習 276
第9章函式 278
9.1函式的重載 278
9.1.1函式的簽名 278
9.1.2重載和指針參數 281
9.1.3重載和引用參數 281
9.1.4重載和const參數 283
9.1.5重載和默認參數值 284
9.2函式模板 285
9.2.1創建函式模板的實例 286
9.2.2顯式指定模板參數 288
9.2.3模板的說明 289
9.2.4函式模板和重載 291
9.2.5帶有多個參數的模板 292
9.3函式指針 293
9.3.1聲明函式指針 294
9.3.2把函式作為參數傳送 297
9.3.3函式指針的數組 299
9.4遞歸 299
9.5本章小結 307
9.6練習 307
第10章程式檔案和預處理器指令 309
10.1使用程式檔案 309
10.1.1名稱的作用域 310
10.1.2“一個定義”規則 312
10.1.3程式檔案和連結 313
10.1.4外部名稱 314
10.2命名空間 318
10.2.1全局命名空間 319
10.2.2定義命名空間 319
10.2.3使用using聲明 322
10.2.4函式和命名空間 322
10.2.5函式模板和命名空間 326
10.2.6擴展命名空間 327
10.2.7未指定名稱的命名空間 330
10.2.8命名空間的別名 331
10.2.9嵌套的命名空間 331
10.3預處理器 332
10.3.1在程式中包含頭檔案 333
10.3.2程式中的置換 334
10.3.3宏置換 336
10.3.4放在多行代碼中的預
處理器指令 338
10.3.5把字元串作為宏參數 339
10.3.6在宏表達式中連線參數 340
10.4邏輯預處理器指令 340
10.4.1邏輯#if指令 341
10.4.2測試特定值的指令 343
10.4.3多個代碼選擇塊 343
10.4.4標準的預處理器宏 344
10.4.5#error和#pragma指令 345
10.5調試方法 346
10.5.1集成調試器 346
10.5.2調試中的預處理器指令 347
10.5.3使用assert宏 353
10.6本章小結 354
10.7練習 355
第11章創建自己的數據類型 356
11.1對象的概念 356
11.2C++中的結構 357
11.2.1理解結構 357
11.2.2定義結構類型 358
11.2.3創建結構類型的對象 360
11.2.4訪問結構對象的成員 360
11.2.5對結構使用指針 366
11.3聯合 370
11.3.1聲明聯合 371
11.3.2匿名聯合 372
11.4更複雜的結構 373
11.5本章小結 379
11.6練習 380
第12章類 381
12.1類和面向對象編程 381
12.1.1封裝 382
12.1.2繼承 383
12.1.3多態性 384
12.1.4術語 385
12.2定義類 385
12.3構造函式 388
12.3.1把構造函式的定義放在
類的外部 390
12.3.2默認的構造函式 392
12.3.3默認的初始化值 395
12.3.4在構造函式中使用初始化
列表 396
12.3.5使用explicit關鍵字 397
12.4類的私有成員 398
12.4.1訪問私有類成員 402
12.4.2默認的副本構造函式 404
12.5友元 405
12.5.1類的友元函式 405
12.5.2友元類 408
12.6this指針 409
12.7const對象和const成員函式 413
12.7.1類中的mutable數據成員 415
12.7.2常量的強制轉換 416
12.8類的對象數組 416
12.9類對象的大小 419
12.10類的靜態成員 421
12.10.1類的靜態數據成員 421
12.10.2類的靜態成員函式 426
12.11本章小結 427
12.12練習 428
第13章類的操作 429
13.1類對象的指針和引用 429
13.2指針作為數據成員 430
13.2.1定義Package類 431
13.2.2定義TruckLoad類 434
13.2.3實現TruckLoad類 435
13.3控制對類的訪問 443
13.4副本構造函式的重要性 445
13.5對象內部的動態記憶體分配 453
13.5.1析構函式 453
13.5.2定義析構函式 453
13.5.3默認的析構函式 454
13.5.4實現析構函式 456
13.6類的引用 457
13.7本章小結 459
13.8練習 460
第14章運算符重載 461
14.1為自己的類實現運算符 461
14.1.1運算符重載 461
14.1.2可以重載的運算符 462
14.1.3實現重載運算符 462
14.1.4全局運算符函式 466
14.1.5提供對運算符的全部支持 466
14.1.6運算符函式術語 470
14.1.7重載賦值運算符 470
14.1.8重載算術運算符 477
14.1.9重載下標運算符 482
14.1.10重載類型轉換 489
14.1.11重載遞增和遞減運算符 490
14.1.12智慧型指針 491
14.1.13重載運算符new和delete 497
14.2本章小結 497
14.3練習 498
第15章繼承 499
15.1類和面向對象編程 499
15.2類的繼承 500
15.2.1繼承和聚合 501
15.2.2從基類中派生新類 502
15.3繼承下的訪問控制 505
15.4把類的成員聲明為protected 508
15.5派生類成員的訪問級別 510
15.5.1在類層次結構中使用
訪問指定符 511
15.5.2改變繼承成員的訪問
指定符 512
15.6派生類中的構造函式操作 514
15.7繼承中的析構函式 520
15.8重複的成員名 522
15.9多重繼承 524
15.9.1多個基類 524
15.9.2繼承成員的模糊性 526
15.9.3重複的繼承 531
15.9.4虛基類 532
15.10在相關的類類型之間轉換 533
15.11本章小結 534
15.12練習 534
第16章虛函式和多態性 536
16.1理解多態性 536
16.1.1使用基類指針 536
16.1.2調用繼承的函式 538
16.1.3虛函式 542
16.1.4虛函式中的默認參數值 549
16.1.5通過引用來調用虛函式 553
16.1.6調用虛函式的基類版本 554
16.1.7在指針和類對象之間轉換 555
16.1.8動態強制轉換 557
16.2多態性的成本 559
16.3純虛函式 560
16.3.1抽象類 560
16.3.2間接的抽象基類 563
16.4通過指針釋放對象 566
16.5在運行期間標識類型 569
16.6類成員的指針 570
16.6.1數據成員指針 570
16.6.2成員函式指針 574
16.7本章小結 578
16.8練習 578
第17章程式錯誤和異常處理 580
17.1處理錯誤 580
17.2理解異常 581
17.2.1拋出異常 581
17.2.2導致拋出異常的代碼 586
17.2.3嵌套的try塊 588
17.3用類對象作為異常 591
17.3.1匹配Catch處理程式
和異常 592
17.3.2用基類處理程式捕獲
派生類異常 596
17.3.3重新拋出異常 598
17.3.4捕獲所有的異常 601
17.4拋出異常的函式 603
17.4.1函式try塊 603
17.4.2在構造函式中拋出異常 605
17.4.3異常和析構函式 606
17.5標準庫異常 606
17.5.1標準庫異常類 607
17.5.2使用標準異常 608
17.6本章小結 609
17.7練習 610
第18章類模板 611
18.1理解類模板 611
18.2定義類模板 612
18.2.1模板參數 613
18.2.2簡單的類模板 613
18.2.3創建類模板的實例 617
18.2.4類模板的靜態成員 625
18.2.5非類型的類模板參數 625
18.2.6非類型參數示例 626
18.2.7默認的模板參數值 636
18.3模板的顯式實例化 636
18.4類模板的友元 637
18.5特殊情形 638
18.6帶有嵌套類的類模板 640
18.7更高級的類模板 648
18.8本章小結 649
18.9練習 649
第19章輸入輸出操作 651
19.1C++中的輸入輸出 651
19.1.1理解流 651
19.1.2使用流的優點 652
19.2流類 653
19.2.1標準流 654
19.2.2流的插入和提取操作 655
19.2.3流操縱程式 657
19.3檔案流 659
19.3.1寫入檔案 659
19.3.2讀取檔案 662
19.3.3設定檔案打開模式 664
19.4未格式化的流操作 672
19.4.1未格式化的流輸入函式 673
19.4.2未格式化的流輸出函式 674
19.5流輸入輸出中的錯誤 675
19.6使用二進制模式流操作 677
19.7對流的讀寫操作 685
19.8字元串流 692
19.9對象和流 693
19.9.1重載類對象的插入運算符 693
19.9.2重載類對象的提取運算符 696
19.9.3流中更複雜的對象 698
19.10本章小結 710
19.11練習 710
第20章標準模板庫 711
20.1STL架構簡介 711
20.1.1STL組件 711
20.1.2STL頭檔案 716
20.2使用vector容器 717
20.2.1創建vector容器 717
20.2.2訪問vector容器中的元素 720
20.2.3vector容器的基本操作 722
20.2.4使用vector容器進行數組
操作 726
20.2.5使用輸入流疊代器 730
20.3創建自己的疊代器 734
20.3.1給算法傳送疊代器 736
20.3.2STL疊代器類型的要求 738
20.3.3STL疊代器成員函式的
要求 740
20.3.4插入疊代器 744
20.4list容器 745
20.4.1創建list容器 746
20.4.2訪問list容器中的元素 747
20.4.3list容器上的操作 747
20.5關聯map容器 753
20.6性能和規範 761
20.7本章小結 763
20.8練習 763
附錄AASCII碼 764
附錄BC++關鍵字 768
附錄C標準庫頭檔案 769
附錄D運算符的優先權和相關性 774
附錄E理解二進制和十六進制數 777
附錄F項目示例 783

相關詞條

熱門詞條

聯絡我們