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

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

作為C++入門經典教材,本書前幾版被全國100多所高校選作C++程式設計課程的教材,很受師生歡迎。《C++入門經典(第10版)》共18章,8個附錄。在講解C++基礎知識之後,循序漸進地引導讀者深入函式、I/O流、類、控制流程、命名空間、數組、字元串、指針和動態數組、遞歸、模板、指針和鍊表、派生類、異常以及標準模板庫。從簡到繁,可以幫助初學者漸入佳境,逐步理解並掌握重要的編程概念。

基本介紹

  • 書名:C++入門經典(第10版) 
  • 作者:[美]Walter Savitch
  • 譯者:周靖
  • ISBN:9787302486763 
  • 頁數:740頁
  • 出版時間:2018.01.01
  • 印次:1-1
  • 印刷日期:2017.11.14
出版信息,內容簡介,目錄,

出版信息

C++入門經典(第10版)
C++入門經典(第10版)
作者:[美]Walter Savitch著  周靖譯
定價:138元
印次:1-1
ISBN:9787302486763
出版日期:2018.01.01
印刷日期:2017.11.14

    內容簡介

    作為C++入門經典教材,《C++入門經典(第10版)》結合作者多年的教學經驗,清楚梳理出一個有利於教與學的結構體系,從各章開頭的內容總覽,到隨處可見的自測題、小結框、編程提示和編程陷阱,再到章末的小結、習題、編程練習和編程項目,由淺入深,從簡到繁,可以幫助初學者漸入佳境,逐步理解並掌握重要的編程概念。 《C++入門經典(第10版)》共18章,8個附錄。在講解C++基礎知識之後,循序漸進地引導讀者深入函式、I/O流、類、控制流程、命名空間、數組、字元串、指針和動態數組、遞歸、模板、指針和鍊表、派生類、異常以及標準模板庫。

    目錄

    目錄
    第1章計算機和C++編程入門 1
    1.1計算機系統 2
    硬體 2
    軟體 5
    高級語言 6
    編譯器 7
    歷史回顧 9
    1.2編程和問題求解 9
    算法 10
    程式設計 11
    面向對象編程 12
    軟體生命周期 12
    1.3C++入門 13
    C++語言的起源 13
    一個C++示範程式 14
    陷阱:在\n中錯誤地使用斜槓 17
    編程提示:輸入和輸出語法 17
    簡單C++程式的布局 17
    陷阱:在include的檔案名稱前錯誤地
    添加一個空格 19
    編譯和運行C++程式 19
    陷阱:編譯C++11程式 19
    編程提示:讓程式運行起來 20
    1.4測試和調試 22
    各種程式錯誤 22
    陷阱:錯誤地假定程式正確 23
    小結 24
    自測題答案 25
    編程練習 26
    編程項目 27
    第2章C++基礎知識 29
    2.1變數和賦值 30
    變數 30
    名稱:標識符 32
    變數聲明 33
    賦值語句 34
    陷阱:未初始化的變數 35
    編程提示:使用有意義的名稱 36
    2.2輸入和輸出 37
    使用cout進行輸出 37
    include預編譯指令和命名空間 38
    轉義序列 39
    編程提示:用\n或endl終止
    每一個程式 40
    格式化帶小數點的數字 41
    用cin進行輸入 42
    設計輸入和輸出 43
    編程提示:I/O中的換行 43
    2.3數據類型和表達式 44
    int類型和double類型 44
    其他數值類型 45
    C++11類型 46
    char類型 47
    bool類型 48
    string類簡介 48
    類型的兼容性 49
    算術操作符和表達式 50
    陷阱:除法中的整數 52
    更多賦值語句 53
    2.4簡單控制流程 54
    一個簡單的分支機制 54
    陷阱:連續的不等式 58
    陷阱:該用==的時候用了= 58
    複合語句 59
    簡單的循環機制 61
    遞增操作符和遞減操作符 63
    編程實例:信用卡餘額 64
    陷阱:無限循環 65
    2.5程式風格 67
    縮進 67
    注釋 67
    為常量命名 69
    小結 71
    自測題答案 72
    編程練習 75
    編程項目 76
    第3章更多的控制流程 81
    3.1使用布爾表達式 82
    布爾表達式求值 82
    陷阱:將布爾表達式轉換成int值 85
    枚舉類型(選讀) 87
    3.2多路分支 87
    嵌套語句 88
    編程提示:在嵌套語句中使用
    花括弧 88
    多路if-else語句 90
    編程實例:州收入稅 91
    switch語句 94
    陷阱:忘記在switch語句中添加
    break 96
    為選單使用switch語句 97
    代碼塊 98
    陷阱:疏忽局部變數 100
    3.3C++循環語句詳解 101
    while語句回顧 101
    再論遞增操作符和遞減操作符 102
    for語句 104
    陷阱:for語句中多餘的分號 108
    應該使用哪種循環 108
    陷阱:未初始化的變數和
    無限循環 110
    break語句 110
    陷阱:嵌套循環中的break語句 111
    3.4設計循環 111
    求和與求乘積的循環 112
    終止循環 113
    嵌套循環 115
    調試循環 116
    小結 119
    自測題答案 120
    編程練習 123
    編程項目 124
    第4章過程抽象和返回值的函式 129
    4.1自頂向下設計 130
    4.2預定義函式 130
    使用預定義函式 131
    隨機數生成 134
    強制類型轉換 135
    強制類型轉換的古老形式 137
    陷阱:整數除法丟棄了小數部分 137
    4.3程式設計師自定義函式 138
    函式定義 138
    返回布爾值的函式 142
    另一種形式的函式聲明 142
    陷阱:實參順序錯誤 143
    函式定義語法小結 144
    再論函式定義的位置 144
    編程提示:在分支語句中使用
    函式調用 145
    4.4過程抽象 146
    黑盒的比喻 146
    編程提示:選擇形參名稱 147
    編程提示:嵌套循環 148
    案例分析:購買比薩 150
    編程提示:使用偽代碼 154
    4.5作用域和局部變數 155
    函式如同小程式 155
    編程實例:豌豆試驗田 157
    全局常量和全局變數 157
    傳值形參是局部變數 158
    塊作用域 160
    再論命名空間 161
    編程實例:階乘函式 163
    4.6重載函式名稱 164
    重載入門 164
    編程實例:購買比薩(修訂版) 166
    自動類型轉換 168
    小結 170
    自測題答案 171
    編程練習 173
    編程項目 174
    第5章用函式完成所有子任務 177
    5.1void函式 178
    void函式的定義 178
    編程實例溫度換算 180
    void函式中的return語句 181
    5.2傳引用參數 182
    初探傳引用調用 182
    傳引用調用詳解 184
    編程實例:swapValues函式 187
    混合的參數列表 188
    編程提示:應該使用哪種參數 189
    陷阱:疏忽造成的局部變數 190
    5.3使用過程抽象 192
    在函式中調用其他函式 192
    前條件和後條件 193
    案例分析:超市定價系統 194
    5.4測試和調試函式 198
    存根和驅動程式 198
    5.5常規調試技術 201
    不抱成見 201
    檢查常見錯誤 202
    定位錯誤 202
    assert宏 203
    小結 205
    自測題答案 206
    編程練習 208
    編程項目 209
    第6章I/O流——對象和類入門 213
    6.1流和基本檔案I/O 214
    為什麼要用檔案來I/O 215
    檔案I/O 215
    類與對象入門 218
    編程提示:檢查檔案是否成功
    打開 219
    檔案I/O技術 222
    追加到檔案(選讀) 223
    檔案名稱作為輸入(選讀) 225
    6.2流I/O工具 227
    用流函式格式化輸出 227
    操縱元 230
    流作為函式實參 232
    編程提示:檢查檔案尾 233
    命名空間的問題 234
    編程實例:整理檔案格式 235
    6.3字元I/O 236
    get和put成員函式 236
    putback成員函式(選讀) 239
    編程實例:檢查輸入 239
    陷阱:輸入中不期而遇的'\n' 241
    編程實例:另一個newLine函式 242
    函式的默認實參(選讀) 243
    eof成員函式 246
    編程實例:編輯文本檔案 247
    預定義字元函式 249
    陷阱:toupper和tolower返回值 250
    小結 252
    自測題答案 253
    編程練習 257
    編程項目 258
    第7章數組 263
    7.1數組入門 264
    聲明和引用數組 264
    編程提示:為數組使用for循環 266
    陷阱:數組索引總是從零開始 266
    編程提示:為數組長度使用已定義
    常量 266
    數組在記憶體中的表示 267
    陷阱:數組索引越界 268
    初始化數組 269
    編程提示:C++11基於範圍的
    for語句 270
    7.2函式中的數組 272
    索引變數作為函式參數 272
    整個數組作為函式參數 274
    const參數修飾符 276
    陷阱:const參數修飾符的使用
    不一致 277
    返回數組的函式 278
    案例分析:產量圖 278
    7.3數組編程 287
    部分填充數組 287
    編程提示:不要吝嗇形參 289
    編程實例:搜尋數組 290
    編程實例:數組排序 291
    編程實例:冒泡排序 294
    7.4多維數組 297
    多維數組基礎 297
    多維數組參數 298
    編程實例:二維打分程式 299
    陷阱:在數組索引之間使用逗號 302
    小結 303
    自測題答案 304
    編程練習 306
    編程項目 307
    第8章字元串和向量 315
    8.1字元串的數組類型 316
    C字元串值和C字元串變數 317
    陷阱:為C字元串使用=和== 319
    <cstring>中的其他函式 321
    陷阱:使用strcpy複製C字元串
    越界 322
    C字元串輸入和輸出 324
    C字元串到數值的轉換和
    可靠輸入 326
    8.2標準string類 330
    標準類string簡介 330
    string類的I/O 332
    編程提示:getline的其他版本 334
    陷阱:混合使用cin>>變數;和
    getline 335
    用string類進行字元串處理 336
    編程實例:回文測試 338
    string對象和C字元串之間的轉換 341
    字元串和數字之間的轉換 342
    8.3向量 342
    向量基礎知識 342
    陷阱:使用方括弧時超出向量
    長度 345
    編程提示:向量賦值具有良好
    行為 345
    效率問題 345
    小結 347
    自測題答案 348
    編程練習 349
    編程項目 350
    第9章指針和動態數組 355
    9.1指針 356
    指針變數 357
    基本記憶體管理 362
    陷阱:虛懸指針 362
    靜態變數和自動變數 362
    編程提示:定義指針類型 363
    9.2動態數組 364
    數組變數和指針變數 365
    創建和使用動態數組 366
    指針運算(選讀) 370
    多維動態數組(選讀) 371
    小結 373
    自測題答案 374
    編程練習 374
    編程項目 375
    第10章定義類 379
    10.1結構 380
    用於異種數據的結構 380
    陷阱:結構定義中忘記添加分號 383
    結構作為函式參數 384
    編程提示:使用層次化結構 384
    對結構進行初始化 386
    10.2類 388
    定義類和成員函式 388
    公共成員和私有成員 391
    編程提示:將所有成員變數
    設為私有 396
    編程提示:定義取值函式和
    賦值函式 397
    編程提示:將賦值操作符用於
    對象 398
    編程實例:BankAccount類
    (版本1) 398
    總結類的一些特徵 402
    用於初始化的構造函式 403
    編程提示:總是包括默認構造
    函式 408
    陷阱:無參構造函式 409
    C++11的成員初始化器和構造
    函式委託 410
    10.3抽象數據類型 411
    用於生成抽象數據類型的類 412
    編程實例:類的另一種實現 414
    10.4繼承 418
    派生類 418
    定義派生類 419
    小結 423
    自測題答案 424
    編程練習 428
    編程項目 428
    第11章類中的友元函式、
    重載操作符和數組 433
    11.1友元函式 434
    編程實例:一個相等性函式 434
    友元函式 436
    編程提示:定義取值函式和
    友元函式 438
    編程提示:同時使用成員函式和
    非成員函式 439
    編程實例:Money類(版本1) 439
    實現digitToInt(選讀) 443
    陷阱:數字常量中的前置零 444
    const參數修飾符 445
    陷阱:修飾符const的用法不一致 447
    11.2重載操作符 449
    重載操作符 449
    用於自動類型轉換的構造函式 452
    重載一元操作符 453
    重載>>和<< 454
    11.3數組和類 460
    類數組 460
    數組作為類成員 463
    編程實例:用於部分填充
    數組的類 463
    11.4類和動態數組 465
    編程實例:字元串變數類 466
    析構函式 468
    陷阱:指針作為傳值參數 469
    拷貝構造函式 471
    重載賦值操作符 474
    小結 477
    自測題答案 478
    編程練習 484
    編程項目 484
    第12章獨立編譯和命名空間 491
    12.1獨立編譯 492
    ADT回顧 492
    案例分析:獨立編譯的
    DigitalTime類 493
    使用#ifndef 500
    編程提示:定義其他庫 502
    12.2命名空間 503
    命名空間和using預編譯指令 503
    創建命名空間 504
    限定名稱 506
    命名空間的微妙之處(選讀) 507
    無名命名空間 508
    陷阱:混淆全局命名空間和
    無名命名空間 512
    小結 513
    自測題答案 514
    編程練習 515
    編程項目 516
    第13章指針和鍊表 517
    13.1節點和鍊表 518
    節點 519
    nullptr 521
    鍊表 522
    在表頭插入節點 523
    陷阱:丟失節點 525
    搜尋鍊表 526
    指針作為疊代器 528
    在列表中插入和刪除節點 528
    陷阱:為動態數據結構使用賦值
    操作符 531
    鍊表的變體 531
    類構成的鍊表 533
    13.2棧和佇列 536
    棧 536
    編程實例:棧類 536
    佇列 539
    編程實例:佇列類 540
    小結 544
    自測題答案 545
    編程練習 546
    編程項目 547
    第14章遞歸 553
    14.1面向任務的遞歸函式 554
    案例分析:垂直數字 555
    深入遞歸 559
    陷阱:無窮遞歸 560
    用於遞歸的棧 562
    陷阱:棧溢出 563
    14.2面向值的遞歸函式 564
    要返回值的遞歸函式的常規形式 564
    編程實例:另一個求乘方函式 564
    14.3遞歸思想 567
    遞歸設計技術 567
    案例分析:二叉搜尋
    (遞歸思想示例) 569
    編程實例:遞歸成員函式 574
    小結 577
    自測題答案 578
    編程練習 581
    編程項目 581
    第15章繼承 585
    15.1繼承基礎 586
    派生類 588
    派生類中的構造函式 593
    陷阱:使用來自基類的私有
    成員變數 595
    陷阱:私有成員函式不會繼承 596
    protected限定符 596
    重定義成員函式 598
    重定義與重載的比較 600
    訪問重定義的基函式 601
    15.2繼承細節 602
    不繼承的函式 602
    派生類中的賦值操作符和
    拷貝構造函式 602
    派生類中的析構函式 603
    15.3多態性 604
    晚期綁定 604
    C++虛函式 605
    虛函式和擴展類型兼容性 609
    陷阱:不使用虛成員函式 612
    陷阱:試圖對虛成員函式定義
    不齊全的類進行編譯 612
    編程提示:使析構函式成為
    虛函式 613
    小結 615
    自測題答案 616
    編程練習 619
    編程項目 620
    第16章異常處理 627
    16.1異常處理基礎 628
    異常處理的簡單例子 629
    定義自己的異常類 635
    多個throw塊和catch塊 636
    陷阱:首先捕捉較具體的異常 638
    編程提示:異常類可能很簡單 638
    在函式中拋出異常 639
    異常規範 640
    陷阱:派生類中的異常規範 641
    16.2用於異常處理的編程技術 642
    拋出異常的時機 642
    陷阱:未捕捉的異常 643
    陷阱:嵌套try-catch塊 643
    陷阱:濫用異常 644
    異常類層次結構 644
    測試可用記憶體 644
    重新拋出異常 645
    小結 646
    自測題答案 647
    編程練習 647
    編程項目 649
    第17章模板 651
    17.1用於算法抽象的模板 652
    函式模板 653
    陷阱:編譯器的複雜性 656
    編程實例:泛型排序函式 657
    編程提示:如何定義模板 660
    陷阱:為不恰當的類型使用模板 660
    17.2用於數據抽象的模板 660
    類模板的語法 660
    編程實例:數組類 663
    小結 668
    自測題答案 669
    編程練習 671
    編程項目 671
    第18章標準模板庫 675
    18.1疊代器 676
    using聲明 677
    疊代器基礎 677
    編程提示:使用auto簡化變數
    聲明 681
    陷阱:編譯器問題 681
    疊代器的種類 682
    常量和可變疊代器 684
    逆向疊代器 685
    其他種類的疊代器 687
    18.2容器 687
    順序容器 687
    陷阱:疊代器和刪除元素 690
    編程提示:容器中的類型定義 691
    容器配接器stack和queue 691
    關聯容器set和map 693
    編程提示:為容器使用初始化、
    基於範圍的for和auto 698
    效率問題 699
    18.3泛型算法 699
    運行時間和大O表示法 700
    容器訪問運行時間 703
    不修改容器的算法 703
    會修改容器的算法 706
    set算法 707
    排序算法 708
    18.4不斷進化的C++ 708
    std::array 709
    正則表達式 710
    執行緒 713
    智慧型指針 717
    小結 722
    自測題答案 723
    編程練習 724
    編程項目 724
    附錄AC++關鍵字 729
    附錄B操作符的優先權 730
    附錄CASCII字元集 731
    附錄D部分庫函式 732
    附錄E內聯函式 736
    附錄F重載數組索引方括弧 737
    附錄Gthis指針 738
    附錄H將操作符重載為成員操作符 740

    相關詞條

    熱門詞條

    聯絡我們