內容簡介
《C 面向對象程式設計》針對已有C程式設計基礎、學習C++面向對象程式設計的讀者。全書分為12章,第1章首先介紹面向對象程式設計的思想和基本概念,以及C與C++的關係;在第2、3、6章介紹C++類、對象、重載的概念及使用方法;第4、5章詳細介紹常量及變數的生存期與作用域;第7、8章詳細講解類的繼承、組合、多態及模板問題;第9、10、11章詳細介紹I/O流、異常處理及Visual C 2008環境;最後給出了一個綜合實例。全書內容由淺入深,採用案例教學的方法,力求將複雜的概念用簡潔淺顯的語言表達,並用實例對方法進行說明。書中還配有大量的習題。《C 面向對象程式設計》配有電子課件、習題解答等教學資源。
《C 面向對象程式設計》可作為高等學校C 面向對象程式設計課程的教材,也可作為工程技術人員的參考書。
圖書目錄
第1章 面向對象的方法學1
1.1 面向對象的發展1
1.2 面向對象方法學概述2
1.2.1 面向對象分析2
1.2.2 面向對象設計3
1.2.3 面向對象實現3
1.3 面向對象程式設計的特點3
1.3.1 抽象性4
1.3.2 封裝性4
1.3.3 繼承性5
1.3.4 多態性5
1.4 面向對象的術語6
1.5 其他面向對象程式設計語言8
1.5.1 Java語言8
1.5.2 C#語言9
1.6 從C到C++10
1.7 Microsoft Visual Studio 2008開發環境13
小結16
習題17
思考題17
第2章 類與對象18
2.1 類的定義18
2.1.1 類定義格式18
2.1.2 成員函式的定義20
2.2 對象的定義與使用21
2.2.1 對象的定義21
2.2.2 對象的使用21
2.2.3 對象的賦值25
2.3 構造函式和析構函式26
2.3.1 構造函式27
2.3.2 析構函式29
2.4 記憶體的動態分配33
2.4.1 運算符new33
2.4.2 運算符delete34
2.5 對象數組和對象指針36
2.5.1 對象數組36
2.5.2 對象指針38
2.5.3 自引用指針this39
2.6 函式參數的傳遞機制42
2.6.1 使用對象作為函式參數42
2.6.2 使用對象指針作為函式參數43
2.6.3 使用對象引用作為函式參數44
2.6.4 三種傳遞方式比較45
2.7 友元46
2.7.1 友元函式46
2.7.2 友元類50
2.8 程式實例52
小結59
習題60
思考題64
第3章 函式重載與內聯函式65
3.1 非成員函式重載65
3.2 成員函式重載67
3.3 函式的默認參數69
3.4 內聯函式71
小結73
習題73
思考題74
第4章 常量與引用75
4.1 const的最初動機75
4.1.1 由define引發的問題75
4.1.2 const使用方法76
4.2 const與指針77
4.2.1 指向常量的指針77
4.2.2 常指針77
4.3 const與函式78
4.3.1 const類型參數78
4.3.2 const類型返回值78
4.3.3 const在傳遞地址中的套用79
4.4 const與類81
4.4.1 類內const局部常量81
4.4.2 常對象與常成員函式82
4.5 引用(&)84
4.5.1 引用的概念84
4.5.2 引用與指針86
4.5.3 引用與函式87
4.6 拷貝構造函式89
小結93
習題93
思考題94
第5章 靜態與命名控制95
5.1 靜態數據成員95
5.2 靜態成員函式98
5.3 靜態對象102
5.4 類作用域及對象的生存期104
5.4.1 類作用域104
5.4.2 對象的生存期105
5.5 命名空間106
5.5.1 命名空間的定義106
5.5.2 命名空間的套用107
小結109
習題109
思考題111
第6章 運算符重載112
6.1 運算符重載的基本概念112
6.2 成員函式重載運算符112
6.2.1 單目運算符重載113
6.2.2 雙目運算符重載114
6.2.3 重載++、???運算符117
6.2.4 重載賦值運算符120
6.2.5 重載下標運算符124
6.2.6 重載函式調用運算符“( )"126
6.3 友元函式重載運算符127
6.4 成員函式重載運算符與友元函式重載運算符比較132
6.5 類型轉換134
6.5.1 系統預定義類型之間的轉換134
6.5.2 用構造函式實現類型轉換135
6.5.3 用類類型轉換函式進行類型轉換137
小結142
習題142
思考題145
第7章 組合、繼承與多態性146
7.1 組合146
7.2 繼承147
7.3 繼承與組合150
7.4 構造與析構次序152
7.4.1 成員對象初始化152
7.4.2 構造和析構順序153
7.5 派生類重載基類函式的訪問157
7.6 虛函式158
7.6.1 靜態綁定與動態綁定159
7.6.2 虛函式159
7.6.3 虛析構函式161
7.7 純虛函式和抽象基類162
7.8 多重繼承164
7.8.1 多繼承語法164
7.8.2 多繼承中的二義性166
7.8.3 最終派生類167
7.8.4 多繼承的構造順序169
小結170
習題171
思考題176
第8章 模板178
8.1 模板的概念178
8.2 函式模板與模板函式178
8.3 類模板與模板類183
8.4 程式實例188
小結198
習題198
思考題199
第9章 輸入/輸出流200
9.1 C++流類庫簡介200
9.2 輸入/輸出流202
9.2.1 基本輸出流202
9.2.2 基本輸入流204
9.2.3 格式化輸入/輸出205
9.2.4 其他的輸入/輸出函式212
9.3 用戶自定義類型的輸入/輸出214
9.3.1 重載輸出運算符“9.3.2 重載輸入運算符“>>”215
9.4 檔案輸入/輸出217
9.4.1 順序訪問檔案218
9.4.2 隨機訪問檔案222
小結223
習題224
思考題226
第10章 異常處理227
10.1 異常處理概述227
10.2 拋出異常227
10.3 異常捕獲228
10.3.1 異常處理語法228
10.3.2 異常接口聲明230
10.3.3 捕獲所有異常230
10.3.4 未捕獲異常的處理230
10.4 構造函式、析構函式與異常處理231
10.5 異常匹配234
10.6 標準異常及層次結構234
小結235
習題235
第11章 Visual C++ 2008開發環境236
11.1 Visual C++ 2008概述236
11.2 Visual C++ 2008環境237
11.2.1 Visual C++ 2008操作界面237
11.2.2 項目238
11.2.3 調試環境239
11.3 Windows編程240
11.3.1 Windows常用數據類型241
11.3.2 訊息與事件242
11.3.3 視窗訊息示例243
11.4 MFC類庫245
11.5 MFC編程實例248
小結252
習題252
第12章 綜合實例253
12.1 系統分析與設計253
12.1.1 系統功能分析253
12.1.2 系統功能類模型253
12.1.3 系統功能流程254
12.2 設計實現255
12.2.1 系統程式框架生成255
12.2.2 建立圖元類257
12.2.3 界面控制260
12.2.4 繪製圖元——線段264
12.2.5 繪製圖元——矩形270
12.2.6 繪製圖元——橢圓274
12.2.7 繪製圖元——文字276
12.2.8 繪製圖元——折線與多邊形279
12.2.9 圖元檔案存取282
小結293
習題293
參考文獻294