《高等學校工程創新型“十二五”劃計算機教材·省精品課程教材·C++簡明教程》是江蘇省精品課程“面向對象c++程序設計”的配套教材。全書共9章,包括:c++程序設計基礎、文件操作、類的基礎、繼承、多態、虛函數、對象組合、異常處理、標準模板庫stl(主要介紹編程常用的string類、容器類、迭代器及其算法等),以及通過odbc對數據庫編程等。全書結合實例講解c++的基本概念和方法,力求簡潔通俗,循序漸進。書中列舉了數百個可直接使用的程序示例源代碼,并給出了運行結果;同時配有大量的習題,括編程題和課程設計題目,并免費提供ppt電子教案及例題源代碼。
《高等學校工程創新型“十二五”劃計算機教材·省精品課程教材·C++簡明教程》適合作為高等學校各專業面向對象c++程序設計課程教材,也是c++編程者的自學參考書。
第1章 c++程序設計基礎 1
1.1 為什么要學習c++程序設計 1
1.2 過程化程序設計和面向對象程序設計 2
1.3 簡單的輸出和輸入方法 2
1.3.1 cout對象 2
1.3.2 cin 對象 3
1.4 標識符 6
1.5 布爾類型 7
1.6 培養良好的編程風格 8
1.6.1 風格對比 8
1.6.2 注釋方法 9
1.7 格式化輸出 11
1.7.1 采用操作符實現格式化輸出 12
1.7.2 采用函數成員實現格式化輸出 16
1.7.3 對函數成員的初步討論 18
1.8 格式化輸入 18
1.8.1 指定輸入域寬 18
1.8.2 讀取一行 19
1.8.3 讀取一個字符 20
1.8.4 讀取字符時易于出錯的地方 21
1.9 函數的默認參數 22
1.10 引用作為函數參數 24
1.11 函數重載 26
1.12 內存的動態分配和釋放 29
習題1 32
第2章 文件操作 34
2.1 文件的基本概念 34
2.1.1 文件命名的原則 34
2.1.2 使用文件的基本過程 34
2.1.3 文件流類型 34
2.2 打開和關閉文件 35
2.2.1 打開文件 35
2.2.2 文件的打開模式 37
2.2.3 定義流對象時打開文件 38
2.2.4 測試文件打開是否成功 38
2.2.5 關閉文件 38
2.3 采用流操作符讀/寫文件 39
2.3.1 采用 << 寫文件 39
2.3.2 格式化輸出在寫文件中的應用 41
2.3.3 采用 >> 從文件讀數據 42
2.3.4 檢測文件結束 44
2.4 流對象作為參數 45
2.5 出錯檢測 46
2.6 采用函數成員讀/寫文件 49
2.6.1 采用 >> 讀文件的缺陷 49
2.6.2 采用函數getline讀文件 50
2.6.3 采用函數get讀文件 51
2.6.4 采用函數put寫文件 52
2.7 多文件操作 53
2.8 二進制文件 54
2.8.1 二進制文件的操作 54
2.8.2 讀/寫結構體記錄 56
2.9 隨機訪問文件 59
2.9.1 順序訪問文件的缺陷 59
2.9.2 定位函數seekp和seekg 60
2.9.3 返回位置函數tellp和tellg 63
2.10 輸入/輸出文件 65
習題2 69
第3章 類的基礎部分 71
3.1 過程化程序設計與面向對象程序設計的區別 71
3.1.1 過程化程序設計的缺陷 71
3.1.2 面向對象程序設計的基本思想 72
3.2 類的基本概念 73
3.3 定義函數成員 76
3.4 定義對象 77
3.4.1 訪問對象的成員 77
3.4.2 指向對象的指針 77
3.4.3 引入私有數據成員的原因 79
3.5 類的多文件組織 80
3.6 私有函數成員的作用 82
3.7 內聯函數 83
3.8 構造函數和析構函數 85
3.8.1 構造函數 85
3.8.2 析構函數 87
3.8.3 帶參構造函數 89
3.8.4 構造函數應用舉例——輸入有效的對象 91
3.8.5 重載構造函數 94
3.8.6 默認構造函數的表現形式 95
3.9 對象數組 96
3.10 類的應用舉例 99
3.11 抽象數組類型 104
3.11.1 創建抽象數組類型 104
3.11.2 擴充抽象數組類型 107
習題3 112
第4章 類的高級部分 114
4.1 靜態成員 114
4.1.1 靜態數據成員 115
4.1.2 靜態函數成員 117
4.2 友元函數 120
4.3 對象賦值問題 124
4.4 拷貝構造函數 126
4.4.1 默認的拷貝構造函數 128
4.4.2 調用拷貝構造函數的情況 129
4.4.3 拷貝構造函數中的常參數 130
4.5 運算符重載 131
4.5.1 重載賦值運算符 131
4.5.2 this指針 134
4.5.3 重載運算符時要注意的問題 136
4.5.4 重載雙目算術運算符 137
4.5.5 重載單目算術運算符 139
4.5.6 重載關系運算符 140
4.5.7 重載流操作符<<和>> 141
4.5.8 重載類型轉換運算符 143
4.5.9 重載[ ]操作符 149
4.5.10 操作符重載綜合舉例——自定義string類 154
4.6 對象組合 163
習題4 164
第5章 繼承、多態和虛函數 166
5.1 繼承 166
5.2 保護成員和類的訪問 171
5.3 構造函數和析構函數 174
5.3.1 默認構造函數和析構函數的調用 174
5.3.2 向基類的構造函數傳遞參數 176
5.4 覆蓋基類的函數成員 179
5.5 虛函數 182
5.6 純虛函數和抽象類 185
5.6.1 純虛函數 185
5.6.2 抽象類 186
5.6.3 指向基類的指針 189
5.7 多重繼承 190
5.8 多繼承 192
習題5 195
第6章 異常處理 198
6.1 異常 198
6.1.1 拋出異常 198
6.1.2 處理異常 199
6.2 基于對象的異常處理 201
6.3 捕捉多種類型的異常 203
6.4 通過異常對象獲取異常信息 205
6.5 再次拋出異常 207
習題6 208
第7章 模板 209
7.1 函數模板 209
7.1.1 從函數重載到函數模板 209
7.1.2 在函數模板中使用操作符需要注意的地方 212
7.1.3 在函數模板中使用多種類型 212
7.1.4 重載函數模板 213
7.1.5 定義函數模板的方法 214
7.2 類模板 215
7.2.1 定義類模板的方法 215
7.2.2 定義類模板的對象 217
7.2.3 類模板與繼承 219
習題7 222
第8章 標準模板庫stl 223
8.1 標準模板庫簡介 223
8.2 string類型 225
8.2.1 如何使用string類型 225
8.2.2 為string對象讀取一行 226
8.2.3 string對象的比較 226
8.2.4 string對象的初始化 227
8.2.5 string的函數成員 227
8.2.6 string對象應用舉例 229
8.3 迭代器類 230
8.4 順序容器 232
8.4.1 矢量類 232
8.4.2 列表類 237
8.4.3 雙端隊列類 241
8.5 函數對象與泛型算法 243
8.5.1 函數對象 244
8.5.2 泛型算法 247
8.6 關聯容器 250
8.6.1 集合和多重集合類 250
8.6.2 映射和多重映射類 252
8.7 容器適配器 254
8.7.1 棧容器適配器 254
8.7.2 隊列容器適配器 256
8.7.3 優先級隊列容器適配器 257
習題8 258
第9章 數據庫程序設計 259
9.1 數據庫簡介 259
9.2 sql語句 259
9.2.1 定義表 259
9.2.2 查詢 260
9.2.3 插入 260
9.2.4 刪除 260
9.2.5 修改 261
9.3 數據庫連接 261
9.3.1 odbc簡介 261
9.3.2 odbc驅動程序 261
9.3.3 創建數據源 261
9.4 數據庫編程中的基本操作 263
9.4.1 數據庫編程的基本過程 263
9.4.2 數據庫查詢 263
9.4.3 插入記錄 265
9.4.4 修改記錄 265
9.4.5 刪除記錄 267
9.5 數據庫編程綜合舉例——學生信息管理系統 268
習題9 276
附錄a “書店圖書管理系統”課程設計要求 277
a.1 課程設計簡介 277
a.2 程序結構 280
a.3 應用程序的主要特點 281
a.4 操作說明 281
a.5 課程設計報告格式 283
參考文獻 284