本書在全面介紹C++語言中面向過程方法的語法知識的基礎上,著重介紹面向對象程序設計方法中的類、對象、繼承、派生和多態性的概念。本書以程序的運行時間和存儲空間為主線,把握程序的靜態性和動態性兩個特點,運用“運行時序圖”和“內存模型圖”的分析手段,從時間和空間兩個角度深入講解程序運行的基本原理,使讀者掌握面向對象程序設計的思想和方法。全書共分3部分:第1部分(第1、2章)為C++的基礎知識,著重介紹C++語言的基本知識;第2部分(第3~6章)為C++面向過程的程序設計,著重介紹C++語言中的操作符、語句、函數、數組、指針和引用;第3部分(第7~9章)為C++面向對象的程序設計,著重介紹C++語言中的類、對象、繼承與派生和多態性。全書提供了大量應用實例,每章后均附有習題。所有實例代碼都在VC++6.0編譯器運行通過。為了便于教學,作者還為本書制作了配套的電子課件。
本書將C++語言作為程序設計的入門語言。大多數示例都是筆者在多年教學過程中的演示代碼,具有較強的實用價值。在講解程序設計語言基本概念的同時,穿插講述計算機組成原理、操作系統、編譯原理、數據結構、算法設計等方面的相關知識,以使學生盡快掌握編程的基本技能。
Contents第1章認識C++1
1.1C++簡單程序設計1
1.1.1“helloworld!”程序實例1
1.1.2綜合程序實例3
1.2C和C++4
1.2.1面向過程與面向對象4
1.2.2C++語言的特點9
1.3C++詞法與語法9
1.3.1字符集9
1.3.2關鍵字10
1.3.3標識符10
1.3.4操作符11
1.3.5分隔符11
1.3.6空白11
1.4C++上機步驟11
1.4.1C++開發過程11
1.4.2上機步驟12
1.5小結15
習題15
第2章變量和數據類型17
2.1內置數據類型18
2.1.1空類型19
2.1.2布爾型19
2.1.3整型19
2.1.4浮點型20
2.1.5字符型21◆C++程序設計目錄2.1.6類型轉換23
2.2變量26
2.2.1什么是變量26
2.2.2變量的定義與聲明26
2.2.3變量的賦值與初始化29
2.2.4一種特殊的變量:符號常量31
2.2.5標識符的作用域32
2.2.6程序的存儲組織39
2.2.7變量的存儲類別40
2.3自定義數據類型43
2.3.1枚舉類型44
2.3.2結構體類型47
2.3.3共同體類型53
2.4小結56
習題56
第3章運算符與表達式59
3.1基本概念59
3.1.1運算符59
3.1.2優先級與結合性61
3.2運算符62
3.2.1算術運算符62
3.2.2賦值運算符62
3.2.3邏輯運算符與關系運算符63
3.2.4sizeof操作符65
3.2.5條件運算符65
3.2.6位運算符66
3.2.7逗號運算符67
3.3小結68
習題68
第4章語句70
4.1程序運行的三種控制方式70
4.2選擇語句71
4.2.1if語句71
4.2.1switch語句76
4.3循環語句78
4.3.1while語句78
4.3.2for語句79
4.3.3dowhile語句82
4.4跳轉語句83
4.4.1break語句83
4.4.2continue語句86
4.4.3goto語句87
4.4.4try語句和異常處理88
4.5小結91
習題91
第5章數組、指針和引用94
5.1數組94
5.1.1數組的概念94
5.1.2一維數組的定義95
5.1.3一維數組的初始化97
5.1.4二維數組的定義98
5.1.5二維數組的初始化99
5.1.6字符數組與字符串101
5.1.7string類104
5.2指針107
5.2.1指針的概念107
5.2.2指針變量108
5.2.3幾個特殊的指針111
5.2.4指向結構體變量的指針112
5.2.5new和delete115
5.3指針與數組118
5.3.1指向數組元素的指針118
5.3.2指向數組元素的指針的運算119
5.4引用122
5.5小結123
習題124
第6章函數125
6.1函數的作用125
6.1.1沒有函數的程序125
6.1.2一個簡單函數的程序126
6.1.3一個更加“聰明”的程序127
6.2函數的使用128
6.2.1函數原型聲明128
6.2.2函數定義130
6.2.3函數調用131
6.2.4函數應用示例134
6.3函數的調用方式137
6.3.1嵌套調用137
6.3.2遞歸調用138
6.4函數的參數傳遞142
6.4.1傳值142
6.4.2傳地址143
6.4.3傳引用144
6.5內聯函數146
6.6函數形參默認值的設置147
6.7函數重載149
6.8函數模板152
6.8.1模板的概念152
6.8.2函數模板的定義153
6.8.3實例化函數模板153
6.9小結155
習題155
第7章類158
7.1數據抽象158
7.2類和對象160
7.2.1類的定義161
7.2.2類的成員函數163
7.2.3對象165
7.3類成員的訪問權限169
7.4構造函數和析構函數171
7.4.1對象的初始化171
7.4.2構造函數171
7.4.3復制構造函數174
7.4.4析構函數177
7.4.5一般程序的執行過程179
7.5this指針183
7.6類的靜態成員187
7.6.1靜態數據成員187
7.6.2靜態函數成員193
7.7數據的保護197
7.7.1常引用197
7.7.2常對象198
7.7.3類的常成員199
7.8類的友元207
7.8.1友元函數208
7.8.2友元類213
7.9類模板216
7.9.1類模板的定義217
7.9.2實例化類模板219
7.10編譯預處理命令和類的多文件定義220
7.10.1編譯預處理220
7.10.2程序的一般組織結構224
7.10.3類的多文件定義225
7.11小結231
習題232
第8章繼承與派生235
8.1類的繼承與派生235
8.1.1繼承與派生的概念235
8.1.2派生類的定義237
8.2派生類成員的訪問權限240
8.2.1公有繼承240
8.2.2私有繼承241
8.2.3保護成員和保護繼承242
8.3派生類的構造函數和析構函數248
8.3.1簡單的派生類的構造函數248
8.3.2多層派生時的構造函數256
8.3.3派生類的析構函數259
8.4多繼承260
8.4.1多繼承派生類的構造函數260
8.4.2同名成員的隱藏263
8.4.3多繼承時的二義性問題266
8.4.4虛基類269
8.5類的組合271
8.6基類與派生類的轉換276
8.7小結279
習題280
第9章多態性與虛函數287
9.1多態性的概念287
9.2虛函數288
9.2.1一般虛函數288
9.2.2虛析構函數295
9.3抽象類296
9.3.1純虛函數296
9.3.2抽象類297
9.4運算符重載299
9.4.1運算符重載的方法300
9.4.2運算符重載的規則301
9.4.3運算符重載為非成員函數302
9.4.4運算符重載為成員函數307
9.5小結311
習題312
參考文獻314