C++程式設計基礎教程

C++程式設計基礎教程

《C++程式設計基礎教程》是由鄭莉、董淵編著,2010年清華大學出版社出版的國家精品課程配套教材、清華大學計算機基礎教育課程系列教材。該教材適用於各類學校的C++語言程式設計課程。

全書共10章,主要內容包括緒論,C++簡單程式設計,函式,類與對象,數據的共享與保護,數組、指針與字元串,繼承與派生,多態性,流類庫與輸入輸出,異常處理。

基本介紹

  • 書名:C++程式設計基礎教程
  • 作者:鄭莉、董淵
  • ISBN:9787302233619
  • 類別:國家精品課程配套教材
  • 頁數:336頁
  • 出版社:清華大學出版社
  • 出版時間:2010年8月1日
  • 裝幀:平裝
  • 開本:16開
  • 字數:515千字
  • CIP核字號:2010145980
成書過程,修訂過程,出版工作,內容簡介,教材目錄,教學資源,教材特色,作者簡介,

成書過程

修訂過程

該教材是《C++語言程式設計(第4版)》的姊妹篇。《C++語言程式設計》第1版於1999年出版,第2版於2001年出版,第3版於2003年出版。在前三版基礎上,作者聽取了讀者和同行的建議,參考了最新(截止2010年8月)的資料,並根據作者在授課過程中的經驗編寫而成。
一、該教材與《C++語言程式設計(第3版)》相比,主要在以下方面作了修訂:
  1. 去掉了原來的第9、10、12、13章;
  2. 從第4章開始,每章編寫了新的綜合實例“個人銀行賬戶管理程式”;
  3. 部分例題有更新。
二、該教材與《C++語言程式設計(第4版)》相比,去掉了第9、10、12章,去掉了每章的“深度探索”一節。
該教材由鄭莉、董淵編著。

出版工作

2010年8月1日,該教材由清華大學出版社出版。
出版社工作人員
責任編輯責任校對責任印製
謝琛、薛陽
白蕾
何芊

內容簡介

全書共10章。
第1章緒論:從發展的角度概要介紹了面向對象程式設計語言的產生和特點,面向對象方法的由來和主要的基本概念,並簡單介紹了什麼是面向對象的軟體工程。最後介紹了信息在計算機中的表示和存儲以及程式的開發過程。
第2章C++簡單程式設計:講述C++程式設計的基礎知識。首先簡要介紹C++語言的發展歷史及其特點;接著學習構成C++語句的基本部分,包括字元集、關鍵字、標識符、操作符等;還有C++的基本數據類型和自定義數據類型以及算法的控制結構,包括順序、選擇和循環結構。“深度探索”介紹變數的實現機制和C++表達式的執行原理。
第3章函式:講述C++語言的函式。在面向對象的程式設計中,函式對處理問題過程的基本抽象單元,是對功能的抽象。同時,使用函式也為代碼的重用提供了技術上的支持。教材主要從套用的角度講述各種函式的定義和使用方法。“深度探索”介紹運行棧與函式調用的執行、函式聲明與類型安全。
第4章類與對象:首先介紹面向對象程式設計的基本思想及其主要特點,包括抽象、封裝、繼承和多態;接著圍繞數據封裝這一特點,著重講解面向對象設計方法的核心概念-類,其中包括類的定義、實現以及如何利用類來解決具體問題;最後,簡單介紹了如何用UML語言描述類的特性。“深度探索”介紹位域、用構造函式定義類型轉換,以及對象作為函式參數和返回值的傳遞方式。
第5章數據的共享與保護:講述標識符的作用域和可見性及變數、對象的生存期;使用局部變數、全局變數、類的數據成員、類的靜態成員和友元來實現數據共享,共享數據的保護,以及使用多檔案結構來組織和編寫程式解決較為複雜的問題。“深度探索”介紹常成員函式的聲明原則、代碼的編譯連線與執行過程。
第6章數組、指針與字元串:討論數組、指針與字元串。數組和指針是C++語言中最常用的複合(構造)類型數據,是數據和對象組織、表示的最主要手段,也是組織運算的有力工具。該章首先介紹數組、指針的基本概念動態存儲分配以及動態數組對象。接著圍繞數據和對象組織這一問題,著重講解如何通過使用數組和指針解決數據、函式以及對象之間的聯繫和協調。對於字元串及其處理,該章重點介紹string類。“深度探索”介紹指針與引用的聯繫、指針的安全性隱患及其應對方案,以及const_cast的套用。
第7章繼承與派生:講述類的繼承特性。圍繞派生過程,著重討論不同繼承方式下的基類成員的訪問控制問題、添加構造函式和析構函式。接著討論在較為複雜的繼承關係中,類成員的唯一標識和訪問問題。“深度探索”介紹組合與繼承的區別與聯繫、派生類對象的記憶體布局,以及基類向派生類的轉換及其安全性問題。
第8章多態性:講述類的另一個重要特性-多態性。多態是指同樣的訊息被不同類型的對象接收時導致完全不同的行為,是對類的特定成員函式的再抽象。C++語言支持的多態有多種類型,重載(包括函式重載和運算符重載)和虛函式是其中主要的方式。“深度探索”介紹多態類型與非多態類型的區別、運行時類型識別機制,以及虛函式動態綁定的實現原理。
第9章流類庫與輸入輸出:講述流的概念,然後介紹流類庫的結構和使用。就像C語言一樣,C++語言中也沒有輸入輸出語句。但C++編譯系統帶有一個面向對象的I/O軟體包,它就是I/O流類庫。“深度探索”介紹寬字元、寬字元串與寬流,以及對象的串列化問題。
第10章異常處理:講述異常處理的基本思想、C++異常處理的實現、異常處理的語法、異常接口聲明、異常處理中的構造與析構、標準程式庫異常處理等內容。

教材目錄

第1章 緒論1
1.1 電腦程式設計語言的發展1
1.1.1 機器語言與彙編語言1
1.1.2 高級語言2
1.1.3 面向對象的語言2
1.2 面向對象的方法2
1.2.1 面向對象方法的由來3
1.2.2 面向對象的基本概念4
1.3 面向對象的軟體開發5
1.3.1 分析5
1.3.2 設計5
1.3.3 編程6
1.3.4 測試6
1.3.5 維護6
1.4 信息的表示與存儲6
1.4.1 計算機的數字系統6
1.4.2 幾種進位記數制之間的轉換8
1.4.3 信息的存儲單位10
1.4.4 二進制數的編碼表示11
1.4.5 定點數和浮點數15
1.4.6 數的表示範圍15
1.4.7 非數值信息的表示16
1.5 程式開發的基本概念16
1.5.1 基本術語16
1.5.2 完整的程式過程17
1.6 小結18
習題18
第2章 C++簡單程式設計19
2.1 C++語言概述19
2.1.1 C++的產生19
2.1.2 C++的特點20
2.1.3 C++程式實例20
2.1.4 字元集21
2.1.5 詞法記號22
2.2 基本數據類型和表達式23
2.2.1 基本數據類型24
2.2.2 常量25
2.2.3 變數27
2.2.4 符號常量28
2.2.5 運算符與表達式28
2.2.6 語句37
2.3 數據的輸入與輸出37
2.3.1 I/O流37
2.3.2 預定義的插入符和提取符37
2.3.3 簡單的I/O格式控制38
2.4 算法的基本控制結構39
2.4.1 用if語句實現選擇結構39
2.4.2 多重選擇結構41
2.4.3 循環結構44
2.4.4 循環結構與選擇結構的嵌套49
2.4.5 其他控制語句52
2.5 自定義數據類型52
2.5.1 typedef聲明53
2.5.2 枚舉類型enum53
2.6 小結55
習題56
第3章 函式60
3.1 函式的定義與使用60
3.1.1 函式的定義60
3.1.2 函式的調用61
3.1.3 函式的參數傳遞74
3.2 內聯函式77
3.3 帶默認形參值的函式78
3.4 函式重載80
3.5 C++系統函式82
3.6 小結85
習題85
第4章 類與對象88
4.1 面向對象程式設計的基本特點88
4.1.1 抽象88
4.1.2 封裝89
4.1.3 繼承90
4.1.4 多態90
4.2 類和對象90
4.2.1 類的定義91
4.2.2 類成員的訪問控制92
4.2.3 對象93
4.2.4 類的成員函式94
4.2.5 程式實例96
4.3 構造函式和析構函式97
4.3.1 構造函式97
4.3.2 複製構造函式99
4.3.3 析構函式103
4.3.4 程式實例104
4.4 類的組合106
4.4.1 組合106
4.4.2 前向引用聲明110
4.5 UML圖形標識112
4.5.1 UML簡介112
4.5.2 UML類圖113
4.6 結構體和聯合體119
4.6.1 結構體119
4.6.2 聯合體120
4.7 綜合實例--個人銀行賬戶管理程式123
4.7.1 類的設計123
4.7.2 源程式及說明124
4.8 小結127
習題127
第5章 數據的共享與保護129
5.1 標識符的作用域與可見性129
5.1.1 作用域129
5.1.2 可見性133
5.2 對象的生存期133
5.2.1 靜態生存期133
5.2.2 動態生存期134
5.3 類的靜態成員136
5.3.1 靜態數據成員137
5.3.2 靜態函式成員139
5.4 類的友元141
5.4.1 友元函式143
5.4.2 友元類144
5.5 共享數據的保護146
5.5.1 常對象146
5.5.2 用const修飾的類成員147
5.5.3 常引用149
5.6 多檔案結構和編譯預處理命令151
5.6.1 C++程式的一般組織結構151
5.6.2 外部變數與外部函式153
5.6.3 標準C++庫155
5.6.4 編譯預處理156
5.7 綜合實例--個人銀行賬戶管理程式159
5.8 小結163
習題163
第6章 數組、指針與字元串165
6.1 數組165
6.1.1 數組的聲明與使用165
6.1.2 數組的存儲與初始化167
6.1.3 數組作為函式參數170
6.1.4 對象數組171
6.1.5 程式實例173
6.2 指針176
6.2.1 記憶體空間的訪問方式176
6.2.2 指針變數的聲明177
6.2.3 與地址相關的運算“”和“&" 177
6.2.4 指針的賦值178
6.2.5 指針運算180
6.2.6 用指針處理數組元素182
6.2.7 指針數組183
6.2.8 用指針作為函式參數186
6.2.9 指針型函式187
6.2.10 指向函式的指針188
6.2.11 對象指針190
6.3 動態記憶體分配195
6.4 用vector創建數組對象201
6.5 深複製與淺複製203
6.6 字元串206
6.6.1 用字元數組存儲和處理字元串207
6.6.2 string類207
6.7 綜合實例--個人銀行賬戶管理程式211
6.8 小結218
習題218
第7章 繼承與派生221
7.1 類的繼承與派生221
7.1.1 繼承關係舉例221
7.1.2 派生類的定義222
7.1.3 派生類生成過程224
7.2 訪問控制226
7.2.1 公有繼承226
7.2.2 私有繼承228
7.2.3 保護繼承230
7.3 類型兼容規則232
7.4 派生類的構造和析構函式234
7.4.1 構造函式235
7.4.2 複製構造函式237
7.4.3 析構函式238
7.5 派生類成員的標識與訪問240
7.5.1 作用域分辨符240
7.5.2 虛基類246
7.5.3 虛基類及其派生類構造函式248
7.6 程式實例--用高斯消去法解線性方程組249
7.6.1 算法基本原理249
7.6.2 程式設計分析250
7.6.3 源程式及說明251
7.6.4 運行結果與分析256
7.7 綜合實例--個人銀行賬戶管理程式257
7.7.1 問題的提出257
7.7.2 類設計258
7.7.3 源程式及說明259
7.7.4 運行結果與分析264
7.8 小結265
習題266
第8章 多態性268
8.1 多態性概述268
8.1.1 多態的類型268
8.1.2 多態的實現268
8.2 運算符重載269
8.2.1 運算符重載的規則270
8.2.2 運算符重載為成員函式271
8.2.3 運算符重載為非成員函式275
8.3 虛函式277
8.3.1 一般虛函式成員278
8.3.2 虛析構函式281
8.4 純虛函式與抽象類283
8.4.1 純虛函式283
8.4.2 抽象類284
8.5 程式實例--變步長梯形積分算法求解函式的定積分286
8.5.1 算法基本原理286
8.5.2 程式設計分析287
8.5.3 源程式及說明288
8.5.4 運行結果與分析291
8.6 綜合實例--對個人銀行賬戶管理程式的改進291
8.7 小結297
習題298
第9章 流類庫與輸入輸出300
9.1 I/O流的概念及流類庫結構300
9.2 輸出流302
9.2.1 構造輸出流對象302
9.2.2 使用插入運算符和操縱符303
9.2.3 檔案輸出流成員函式307
9.2.4 二進制輸出檔案309
9.2.5 字元串輸出流310
9.3 輸入流311
9.3.1 構造輸入流對象311
9.3.2 使用提取運算符312
9.3.3 輸入流操縱符312
9.3.4 輸入流相關函式312
9.3.5 字元串輸入流316
9.4 輸入輸出流317
9.5 綜合實例--對個人銀行賬戶管理程式的改進317
9.6 小結323
習題323
第10章 異常處理325
10.1 異常處理的基本思想325
10.2 C++異常處理的實現325
10.2.1 異常處理的語法326
10.2.2 異常接口聲明328
10.3 異常處理中的構造與析構329
10.4 標準程式庫異常處理330
10.5 綜合實例--對個人銀行賬戶管理程式的改進333
10.6 小結336
習題336
(註:目錄排版順序為從左列至右列

教學資源

  • 配套教材
該教材有配套教材——《C++程式設計基礎教程(學生用書)》。
書名書號出版社出版時間作者
《C++程式設計基礎教程(學生用書)》
9787302253532
清華大學出版社
2011.06.01
鄭莉
  • 課程資源
該教材配有電子教案(PPT檔案)。

教材特色

《C++程式設計基礎教程》針對程式設計的初學者,以面向對象的程式設計思想為主線介紹C++語言,引導讀者以最自然的方式,將面向對象的思維方法運用到程式設計中。
全書以面向對象的程式設計方法貫穿始終,每一章都是首先闡述面向對象的程式設計思想和方法,由實際問題入手,然後引出必要的語法知識,在講解語法時著重從程式設計方法學的角度講述其意義和用途。該教材的宗旨是,不僅要使讀者掌握C++語言本身,而且要能夠對現實世界中較簡單的問題及其解決方法用計算機語言進行描述。

作者簡介

鄭莉,女,碩士,清華大學計算機科學與技術系教授,主要研究方向為計算機套用、計算機教育、教育信息技術。
董淵,男,博士,清華大學計算機科學與技術系副教授,主要研究方向為嵌入式作業系統、編譯系統、基於語言的可信軟體等。

相關詞條

熱門詞條

聯絡我們