本書全面介紹面向過程編程與面向對象編程的基本理念與方法。運用大量示例程序,從介紹C++的語言基礎開始,逐步過渡到面向對象編程,最后以一個常見的實例介紹從問題描述到類的設計過程,并對高校圖書管理系統的實現做了分析。 全書共分11章。第1~7章主要介紹面向過程編程的方法與思路,包括C++中的內置數據類型、控制結構、函數、指針。第8~10章著重討論面向對象編程的理念,包括C++中的類、運算符重載、繼承、多態。第11章以具體實例介紹類設計的一般過程。全書提供了大量應用實例,每章后均附有習題。 本書從基本概念開始講解,適合沒有編程經驗的讀者學習。同時也可作為高等學校計算機相關專業的C++語言教材和計算機公共課的編程語言教材。
本書以Microsoft Visual C++ 6.0為平臺,從C++語言基礎開始講解,逐步深入到高級面向對象技術,結合生活道理,描述通俗易懂,講解由淺入深,循序漸進。
提供大量實例,不僅包括簡單的代碼演示,也包括較大應用程序的實現步驟,貼近生活的實例大大激發學習者的學習興趣,適合初學者閱讀和實現。
每章配有選擇題、思考題和實踐題,幫助讀者鞏固所學知識,提高編程能力。
可作為高等院校相關專業的教材,也可作為教輔資料,還可作為學習應用技術的參考書。
C++程序設計教程第1章C++語言基礎1
1.1計算機與程序1
1.2機器語言、匯編語言與高級語言2
1.3C++的起源與發展3
1.4ANSI C++3
1.5C++程序設計的典型步驟4
1.6C++程序的基本結構4
1.6.1簡單C++程序之一: 顯示字符串5
1.6.2用cout輸出信息6
1.6.3簡單C++程序之二: 顯示兩個整數之和7
1.6.4簡單C++程序之三: 顯示任意兩個整數之和7
1.6.5簡單C++程序之四: 顯示整數的立方8
1.6.6簡單C++程序之小結10
1.7標準庫、頭文件與名字空間11
1.8簡單輸入和輸出格式控制13
1.9常見錯誤分類14
1.10面向對象的基本概念15
1.11UML簡介16
習題一18第2章變量、類型、表達式20
2.1字符集與標識符20
2.1.1字符集20
2.1.2標識符21
2.2數據類型21
2.2.1數據類型分類21
2.2.2數據類型、變量與字面常量22
2.2.3基本數據類型24
2.2.4變量的存儲類別28C++程序設計教程目錄2.3標識符常量28
2.4運算符29
2.4.1算術運算符和算術表達式32
2.4.2賦值運算符和表達式32
2.4.3自增、自減運算符33
2.5隱式類型轉換與顯式類型轉換34
2.6常量與枚舉36
習題二37第3章算法與控制結構38
3.1算法簡介與算法的描述38
3.1.1算法的概念38
3.1.2算法的特點39
3.1.3算法的分類39
3.1.4算法的構成39
3.1.5算法的表示40
3.2關系運算與邏輯運算42
3.3分支結構44
3.3.1if語句44
3.3.2switch語句48
3.4while與do while循環結構52
3.4.1while語句52
3.4.2dowhile語句55
3.5for循環結構57
3.6循環的嵌套60
3.7break語句和continue語句62
3.8結構化程序設計總結63
習題三70第4章數組與字符串73
4.1一維數組73
4.1.1一維數組的定義73
4.1.2一維數組的引用75
4.1.3一維數組的初始化76
4.1.4一維數組應用舉例77
4.2二維數組80
4.2.1二維數組的定義81
4.2.2二維數組的引用81
4.2.3二維數組的初始化82
4.2.4多維數組83
4.2.5二維數組應用舉例84
4.3字符數組和C風格的字符串87
4.3.1字符數組88
4.3.2C風格的字符串88
4.4C++的字符串94
4.4.1string類94
4.4.2C++字符串處理函數98
4.4.3字符串應用舉例100
4.5本章小結101
習題四102第5章函數103
5.1模塊化程序設計思想103
5.2標準庫與頭文件104
5.3函數定義與調用108
5.3.1函數的概念109
5.3.2函數定義109
5.3.3函數調用111
5.3.4函數原型113
5.4形參、實參與返回值115
5.5帶默認形參值的函數120
5.6變量的作用域121
5.7變量的存儲類別124
5.8數組作為函數的參數127
5.8.1一維數組作為函數參數127
5.8.2多維數組作為函數參數130
5.9遞歸函數131
5.9.1遞歸函數131
5.9.2遞歸與循環的比較134
5.10函數應用舉例135
5.11本章小結138
習題五139第6章指針142
6.1指針基本概念142
指針與指針變量的概念142
6.2指針操縱有名量——單值變量143
6.2.1指針變量的聲明143
6.2.2指針運算符與&144
6.2.3指針運算148
6.3指針操縱有名量——數組變量150
指向數組的指針150
6.4指針操縱無名存儲單元——動態內存分配158
6.5指針與函數160
6.6指針數組167
6.7指向指針的指針167
習題六169第7章結構體173
7.1結構體類型定義173
7.2結構體變量的定義和使用175
7.2.1結構體變量定義175
7.2.2結構體變量的初始化177
7.2.3結構體變量的使用178
7.3結構體數組180
7.3.1結構體數組定義180
7.3.2結構體數組應用舉例182
7.4結構體指針184
7.4.1結構體指針184
7.4.2靜態鏈表185
7.5結構體變量作為函數參數187
7.6C和C++中結構體的區別189
7.7結構體實例191
習題七192第8章類與對象194
8.1現實世界中的對象與類194
8.2類的定義與對象的簡單創建195
8.2.1類的定義195
8.2.2對象的創建196
8.3成員函數的類內與類外實現方法198
8.3.1成員函數的類內實現198
8.3.2成員函數的類外實現199
8.4訪問權限——信息隱藏200
8.4.1public與private200
8.4.2set函數(一個參數與多個參數)與get函數(一個或
多個返回值)201
8.4.3接口與實現的分離206
8.5對象的創建與銷毀209
8.5.1構造函數209
8.5.2析構函數215
8.5.3構造函數與析構函數調用順序215
8.6常對象與常成員函數217
8.7構造函數與對象成員221
8.8靜態數據成員224
8.9this指針226
8.9.1指針與類226
8.9.2this指針227
8.10淺拷貝與深拷貝231
8.10.1拷貝構造函數231
8.10.2淺拷貝與深拷貝234
8.11實例分析: 儲蓄賬戶第1個版本238
習題八243第9章友元與運算符重載245
9.1友元245
9.1.1為什么使用友元245
9.1.2使用友元246
9.2運算符重載248
9.2.1為什么使用運算符重載248
9.2.2運算符重載規則248
9.2.3使用成員函數重載Longtime類的運算符249
9.2.4使用友元函數重載Longtime類的運算符253
9.2.5成員函數重載運算符與友元函數重載運算符的比較255
9.2.6重載自增++與自減--運算符256
9.2.7重載運算符<<和>>259
9.2.8重載=和下標運算符\[\]261
習題九265第10章繼承與多態266
10.1現實世界中的繼承與C++中的繼承概念266
10.2派生類的定義268
派生類的定義268
10.3繼承方式269
10.3.1繼承方式269
10.3.2從基類到派生類273
10.4派生類構造函數與析構函數274
10.4.1派生類的構造函數274
10.4.2派生類對象的構造順序275
10.4.3派生類對基類的重定義277
10.5繼承與組合280
10.6多態與虛函數284
10.6.1基類與派生類之間的轉換——向上類型轉換284
10.6.2什么是多態288
10.6.3虛函數289
10.7純虛函數與抽象基類291
習題十298第11章綜合實例分析301
11.1從問題描述到類的設計301
11.2儲蓄賬戶的第2個版本305
11.3儲蓄賬戶的第3個版本309
11.4高校圖書管理系統第1個版本315
習題十一323參考文獻325