基本信息
C++面向對象程式設計(第3版)
作 譯 者:杜茂康,謝青
出版時間:2017-06
千 字 數:740
版 次:01-01
頁 數:424
開 本:16開
I S B N :9787121315831
內容簡介
本書以C++ 11標準為指導,深入淺出地介紹了標準C++面向對象程式設計的相關知識,以及用Visual C++進行面向對象的Windows程式設計的基本原理和方法,包括C++對C語言的擴展、類、對象、友元、繼承、多態性、虛函式、重載、I/O流類庫、檔案、模板與STL、C++ Windows程式的結構、訊息驅動、MFC應用程式框架、GDI、選單、對話框、工具列、文檔與視圖等內容。全書本著易於理解、實用性強的原則設計其內容和案例,並以一個規模較大的綜合性程式的編制貫穿於C++面向對象技術和Windows程式設計的全過程,引導讀者理解和掌握面向對象程式設計的思想、技術、方法,以及在Windows程式中套用自定義類實現程式功能的軟體開發方法。本書取材新穎,內容全面,通俗易懂,可作為高等院校計算機、電子信息類專業及其他理工類相關專業的教材,也可作為C++語言自學者或程式設計人員的參考用書。
目錄信息
第1章 C++與面向對象程式設計概述 1
1.1 面向過程和面向對象程式設計 1
1.2 面向對象程式語言的特徵 3
1.3 C++與面向對象程式設計 5
1.3.1 C++簡史 6
1.3.2 C++的特點 7
1.3.3 C++程式的結構 7
1.3.4 標準C++程式設計 9
1.4 數據的輸入和輸出 11
1.4.1 C++的數據類型 11
1.4.2 流的概念 12
1.4.3 cin和提取運算符>> 12
1.4.4 cout和插入運算符<< 14
1.4.5 輸出格式控制符 16
1.4.6 數制基數 17
1.4.7 string與字元串輸入/輸出 18
1.4.8 數據輸入的典型問題 19
1.5 編程實作——Visual C++ 2015編程簡介 24
習題1 26
第2章 C++基礎 28
2.1 C++對C語言數據類型的擴展 28
2.2 左值、右值及C++對局部變數聲明的改進 29
2.2.1 左值和右值 29
2.2.2 C++局部變數的聲明與定義 29
2.3 指針 30
2.3.1 指針概念的回顧 30
2.3.2 空指針、void*以及獲取數組首、尾元素位置的指針 31
2.3.3 new和delete 32
2.3.4 智慧型指針11C++ 34
2.4 引用 36
2.4.1 左值引用 36
2.4.2 右值引用11C++ 39
2.5 const和constexpr常量 40
2.5.1 常量的定義 40
2.5.2 const、constexpr與指針 41
2.5.3 const與引用 42
2.5.4 頂層const和底層const 43
2.6 auto和decltype類型11C++ 44
2.7 begin、end和基於範圍的for循環11C++ 45
2.8 類型轉換 46
2.9 函式 49
2.9.1 函式原型 49
2.9.2 函式參數傳遞的類型 50
2.9.3 函式默認參數 54
2.9.4 函式返回值 55
2.9.5 函式重載 57
2.9.6 函式與const和constexpr 60
2.9.7 內聯函式 62
2.10 Lamada表達式11C++ 63
2.11 命名空間 65
2.12 預處理器 67
2.13 作用域和生命期 68
2.13.1 作用域 68
2.13.2 變數類型及生命期 70
2.13.3 初始化列表、變數初始化與賦值 71
2.13.4 局部變數與函式返回地址 73
2.14 檔案輸入和輸出 73
2.15 編程實作 75
習題2 77
第3章 類和對象 81
3.1 類的抽象和封裝 81
3.1.1 抽象 81
3.1.2 封裝 83
3.2 struct和class 85
3.2.1 C++對struct的擴展 85
3.2.2 類(class) 87
3.3 數據成員 89
3.4 成員函式 90
3.4.1 成員函式定義方式和內聯函式 90
3.4.2 常量成員函式 91
3.4.3 成員函式重載和默認參數值 92
3.5 對象 92
3.6 構造函式設計 95
3.6.1 構造函式和類內初始值 95
3.6.2 默認構造函式 97
3.6.3 重載構造函式 100
3.6.4 構造函式與初始化列表 102
3.6.5 委託構造函式11C++ 104
3.7 析構函式 105
3.8 賦值運算符函式、拷貝構造函式和移動函式設計 107
3.8.1 賦值運算符函式 107
3.8.2 拷貝構造函式 110
3.8.3 移動函式11C++ 113
3.9 靜態成員 117
3.10 this指針 120
3.11 對象套用 124
3.12 類的作用域和對象的生存期 128
3.13 友元 131
3.14 編程實例:類的接口與實現的分離 132
3.14.1 頭檔案 133
3.14.2 源檔案 134
3.14.3 對類的套用 135
習題3 138
第4章 繼承 142
4.1 繼承的概念 142
4.2 protected和繼承 143
4.3 繼承方式 144
4.4 派生類對基類的擴展 147
4.4.1 成員函式的重定義和名字隱藏 147
4.4.2 基類成員訪問 149
4.4.3 using和隱藏函式重現11C++ 149
4.4.4 派生類修改基類成員的訪問許可權 150
4.4.5 友元與繼承 151
4.4.6 靜態成員與繼承 152
4.4.7 繼承和類作用域 154
4.5 構造函式和析構函式 155
4.5.1 派生類構造函式的建立規則 155
4.5.2 派生類構造函式和析構函式的調用次序 159
4.5.3 派生類的賦值、拷貝和移動操作 161
4.6 基類與派生類對象的關係 163
4.6.1 派生類對象對基類對象的賦值和初始化 163
4.6.2 派生類對象與基類對象的類型轉換 165
4.7 多重繼承 167
4.7.1 多重繼承的概念和套用 167
4.7.2 多重繼承方式下成員的二義性 169
4.7.3 多重繼承的構造函式和析構函式 169
4.8 虛擬繼承 171
4.9 繼承和組合 175
4.10 編程實例 180
習題4 185
第5章 多態性 189
5.1 多態性概述 189
5.1.1 多態的概念 189
5.1.2 多態的意義 191
5.1.3 多態和聯編 192
5.2 虛函式 192
5.2.1 虛函式的意義 192
5.2.2 override和final 11C++ 195
5.2.3 虛函式的特性 197
5.3 虛析構函式 201
5.4 純虛函式和抽象類 202
5.4.1 純虛函式和抽象類 202
5.4.3 抽象類的套用 204
5.4 運行時類型信息 210
5.4.1 dynamic_cast 211
5.4.2 typeid 214
5.5 編程實例 216
習題5 217
第6章 運算符重載 221
6.1 運算符重載基礎 221
6.2 重載二元運算符 223
6.2.1 類與二元運算符重載 223
6.2.2 非類成員方式重載二元運算符的特殊用途 226
6.3 重載一元運算符 227
6.3.1 作為成員函式重載 228
6.3.2 作為友元函式重載 229
6.4 特殊運算符重載 230
6.4.1 運算符++和--的重載 230
6.4.2 下標[]和賦值運算符= 232
6.4.3 類型轉換運算符 234
6.4.4 函式調用運算符重載 237
6.5 輸入/輸出運算符重載 238
6.6 編程實例 239
習題6 244
第7章 模板和STL 247
7.1 模板的概念 247
7.2 函式模板和模板函式 248
7.2.1 函式模板的定義 248
7.2.2 函式模板的實例化 249
7.2.3 模板參數 250
7.3 類模板 253
7.3.1 類模板的概念 253
7.3.2 類模板的定義 254
7.3.3 類模板實例化 255
7.3.4 類模板的使用 257
7.4 模板設計中的幾個獨特問題 258
7.4.1 內聯與常量函式模板 258
7.4.2 默認模板實參 11C++ 259
7.4.3 成員模板 259
7.4.4 可變參數函式模板 11C++ 260
7.4.5 模板重載、特化、非模板函式及調用次序 261
7.4 STL 264
7.4.1 函式對象 264
7.4.2 順序容器 265
7.4.3 疊代器 272
7.4.4 pair和tuple容器 273
7.4.5 關聯式容器 276
7.4.6 算法 281
7.5 編程實例 284
習題7 286
第8章 異常 289
8.1 異常處理概述 289
8.2 C++異常處理基礎 290
8.2.1 異常處理的結構 290
8.2.2 異常捕獲 291
8.3 異常與函式 292
8.4 異常處理的幾種特殊情況 294
8.5 異常和類 298
8.5.1 構造函式和異常 298
8.5.2 異常類 300
8.5.3 派生異常類的處理 303
習題8 305
第9章 流和檔案 308
9.1 C++ I/O流及流類庫 308
9.2 I/O成員函式 309
9.2.1 istream流中的常用成員函式 309
9.2.2 ostream流中的常用成員函式 311
9.2.3 數據輸入、輸出的格式控制 312
9.3 檔案操作 315
9.3.1 檔案和流 315
9.3.2 二進制檔案 317
9.3.3 隨機檔案 321
習題9 322
第10章 C++ Windows程式設計基礎 325
10.1 Windows程式設計基礎 325
10.1.1 視窗 325
10.1.2 事件驅動和訊息回響 325
10.1.3 Windows程式的檔案構成 326
10.1.4 Visual C++的Windows程式設計方法 327
10.2 Windows程式設計的常用數據結構 328
10.3 Windows程式的基本結構 331
10.4 Windows程式的控制流程 333
10.5 Windows程式的數據輸出 338
10.6 訊息驅動程式設計 341
習題10 344
第11章 MFC程式設計 346
11.1 MFC程式基礎 346
11.1.1 MFC類 346
11.1.2 MFC程式的結構 348
11.1.3 MFC程式的執行流程 350
11.1.4 訊息映射 352
11.2 應用程式框架 354
11.2.1 用嚮導建立應用程式框架 354
11.2.2 應用程式框架的結構 356
11.2.3 應用程式框架類之間的關係 363
11.3 MFC程式的數據輸出 364
11.3.1 MFC中的圖形類 364
11.3.2 繪圖對象 366
11.3.3 用MFC嚮導添加訊息映射函式 368
11.3.4 OnPaint函式與輸出 372
11.4 對話框 373
11.4.1 對話框的類型 373
11.4.2 用資源編輯器建立對話框 374
11.5 選單和工具列 379
11.5.1 直接修改應用程式框架的選單 379
11.5.2 建立新選單欄 382
11.5.3 工具列操作 383
11.6 視圖與文檔 384
習題11 387
第12章 MFC綜合程式設計 389
12.1 在應用程式框架中包含並修改自定義類 389
12.2 在事件函式中操作類對象 391
12.3 添加對話框 394
12.4 添加程式選單 396
12.5 文檔序列化 399
習題12 409
參考文獻 410