C++面向?qū)ο蟪绦蛟O(shè)計(第4版)
定 價:68 元
- 作者:杜茂康
- 出版時間:2024/4/1
- ISBN:9787121474903
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP312.8
- 頁碼:440
- 紙張:
- 版次:01
- 開本:16開
本書以C++ 14/17/20標準為指引,深入淺出地介紹了標準C++面向?qū)ο蟪绦蛟O(shè)計的相關(guān)知識,包括C++對C語言的擴展以及類、對象、友元、繼承、多態(tài)、虛函數(shù)、重載、I/O流類庫、文件、模板與STL、異常、多線程等內(nèi)容。全書本著易于理解、實用性強的原則設(shè)計其內(nèi)容和案例,并以一個規(guī)模較大的綜合性程序貫穿于C++面向?qū)ο缶幊痰娜^程,引領(lǐng)讀者理解和掌握面向?qū)ο蟪绦蛟O(shè)計的思想、方法和技術(shù),以及運用C++設(shè)計自定義類進行軟件開發(fā)的方法。本書取材新穎,內(nèi)容全面,通俗易懂,可作為高等院校計算機、電子信息類專業(yè)及其他理工類相關(guān)專業(yè)和信息管理與信息系統(tǒng)等專業(yè)的教材,也可作為C++語言自學(xué)者或程序設(shè)計人員的參考用書。
杜茂康,男,重慶郵電大學(xué)教授,主要研究方向:信息系統(tǒng)設(shè)計與研究、數(shù)據(jù)庫系統(tǒng)應(yīng)用、商務(wù)數(shù)據(jù)挖掘。出版教材8部,英文譯著3部,主持和參與了省部級以上項目6項、信息化平臺建設(shè)方面的橫向課題3項,獲得省部級教成果獎4項。
目 錄
第1章 C++與面向?qū)ο蟪绦蛟O(shè)計 1
1.1 面向?qū)ο蟪绦蛟O(shè)計概述 2
1.1.1 面向過程程序設(shè)計 2
1.1.2 面向?qū)ο蟪绦蛟O(shè)計 3
1.1.3 面向?qū)ο蟪绦蛟O(shè)計語言的特征 4
1.2 C++語言概述 6
1.2.1 C++語言簡史 7
1.2.2 C++的特點 8
1.2.3 C++程序的結(jié)構(gòu) 8
1.2.4 標準C++程序設(shè)計 11
1.3 數(shù)據(jù)的輸入和輸出 13
1.3.1 數(shù)據(jù)類型 13
1.3.2 流的概念 15
1.3.3 cin和提取運算符>> 15
1.3.4 cout和插入運算符<< 17
1.3.5 輸出格式控制符 19
1.3.6 數(shù)制基數(shù) 21
1.3.7 string和字符串的輸入、輸出 22
1.3.8 數(shù)據(jù)輸入的典型問題 24
1.4 編程實作:Visual C++ 2022編程簡介 28
習(xí)題1 32
第2章 C++程序設(shè)計基礎(chǔ) 34
2.1 C++語言對C語言的類型擴展和類型定義 35
2.2 C++程序變量設(shè)計的基本思想 36
2.3 左值、右值和斷言 38
2.4 指針 39
2.4.1 指針概述 39
2.4.2 void*指針和獲取數(shù)組首、尾元素位置的指針 41
2.4.3 內(nèi)存的分配和釋放 42
2.4.4 智能指針 44
2.5 引用 49
2.5.1 左值引用 49
2.5.2 右值引用、移動及其語義 52
2.6 const和constexpr常量 54
2.6.1 常量的定義 54
2.6.2 const、constexpr與指針 55
2.6.3 const與引用 56
2.6.4 頂層const和底層const 57
2.7 auto、decltype和decltype(auto)類型 58
2.8 C++新式for循環(huán)和數(shù)組 60
2.8.1 begin、end和基于范圍的for循環(huán) 60
2.8.2 vector和valarray 61
2.9 數(shù)據(jù)類型轉(zhuǎn)換 63
2.10 函數(shù) 66
2.10.1 函數(shù)原型 66
2.10.2 函數(shù)參數(shù)傳遞的方式 67
2.10.3 函數(shù)默認參數(shù) 71
2.10.4 函數(shù)返回值 72
2.10.5 函數(shù)重載 75
2.10.6 函數(shù)與const和constexpr 78
2.10.7 內(nèi)聯(lián)函數(shù) 81
2.11 匿名函數(shù) 82
2.12 命名空間 88
2.13 變量 90
2.13.1 變量定義 90
2.13.2 作用域 90
2.13.3 變量的類型和生命期 92
2.13.4 變量初始化 93
2.13.5 局部變量與函數(shù)返回地址 97
2.14 預(yù)處理器 97
2.15 文件的輸入和輸出 100
2.15.1 文件操作的基本流程 100
2.15.2 輸入流、輸出流的泛化思想 101
2.16 編程實作:C++程序設(shè)計初步 102
習(xí)題2 104
第3章 類和對象 110
3.1 類的抽象和封裝 111
3.1.1 抽象 111
3.1.2 封裝 113
3.2 結(jié)構(gòu) 115
3.2.1 C++對結(jié)構(gòu)的擴展 116
3.2.2 類 118
3.3 數(shù)據(jù)成員 119
3.4 成員函數(shù) 120
3.4.1 成員函數(shù)定義方式和內(nèi)聯(lián)函數(shù) 120
3.4.2 常量成員函數(shù) 122
3.4.3 成員函數(shù)重載和默認參數(shù)值 123
3.5 對象 123
3.6 構(gòu)造函數(shù)設(shè)計 126
3.6.1 編譯器默認添加成員函數(shù) 127
3.6.2 構(gòu)造函數(shù)和類內(nèi)初始值 128
3.6.3 默認構(gòu)造函數(shù) 130
3.6.4 重載構(gòu)造函數(shù) 133
3.6.5 構(gòu)造函數(shù)與初始化列表 135
3.6.6 委托構(gòu)造函數(shù) 137
3.7 析構(gòu)函數(shù) 138
3.7.1 析構(gòu)函數(shù)的設(shè)計思想和定義 138
3.7.2 弱指針與析構(gòu)函數(shù) 140
3.8 賦值運算符函數(shù)、復(fù)制構(gòu)造函數(shù)和移動函數(shù)設(shè)計 142
3.8.1 賦值運算符函數(shù) 142
3.8.2 復(fù)制構(gòu)造函數(shù) 146
3.8.3 移動函數(shù) 149
3.9 靜態(tài)成員 154
3.10 this指針 157
3.11 對象應(yīng)用 161
3.11.1 成員訪問操作符 161
3.11.2 對象數(shù)組與對象指針 164
3.11.3 向函數(shù)傳遞對象 165
3.11.4 對象成員 166
3.12 類的作用域和對象的生命期 169
3.13 友元 172
3.14 編程實作:類的接口與實現(xiàn)的分離 173
3.14.1 頭文件 174
3.14.2 源文件 175
3.14.3 對類的應(yīng)用 176
習(xí)題3 180
第4章 繼承 185
4.1 繼承的概念 186
4.2 protected與繼承 187
4.3 繼承方式 188
4.4 派生類對基類的擴展 191
4.4.1 成員函數(shù)的重定義和名字隱藏 191
4.4.2 基類成員訪問 193
4.4.3 using和隱藏函數(shù)重現(xiàn) 194
4.4.4 派生類修改基類成員的訪問權(quán)限 195
4.4.5 友元與繼承 196
4.4.6 靜態(tài)成員與繼承 197
4.4.7 繼承和類作用域 198
4.5 構(gòu)造函數(shù)和析構(gòu)函數(shù) 199
4.5.1 派生類構(gòu)造函數(shù)的建立規(guī)則 200
4.5.2 派生類構(gòu)造函數(shù)和析構(gòu)函數(shù)的調(diào)用次序 205
4.5.3 派生類的賦值、復(fù)制和移動操作 207
4.6 基類與派生類對象的關(guān)系 208
4.6.1 派生類對象對基類對象的賦值和初始化 209
4.6.2 派生類對象與基類對象的類型轉(zhuǎn)換 211
4.7 多繼承 213
4.7.1 多繼承的概念和應(yīng)用 213
4.7.2 多繼承方式下的成員二義性 215
4.7.3 多繼承的構(gòu)造函數(shù)和析構(gòu)函數(shù) 216
4.8 虛擬繼承 217
4.9 繼承和組合 222
4.10 編程實作:繼承編程應(yīng)用 226
習(xí)題4 231
第5章 多態(tài) 237
5.1 多態(tài)概述 238
5.1.1 多態(tài)的概念 238
5.1.2 多態(tài)的意義 240
5.1.3 多態(tài)和綁定 241
5.2 虛函數(shù) 241
5.2.1 虛函數(shù)的意義 241
5.2.2 override和final 244
5.2.3 虛函數(shù)的特性 246
5.3 虛析構(gòu)函數(shù) 251
5.4 純虛函數(shù)和抽象類 252
5.4.1 純虛函數(shù)和抽象類 252
5.4.2 抽象類的應(yīng)用 254
5.5 運行時類型信息 262
5.5.1 dynamic_cast 263
5.5.2 typeid 266
5.6 編程實作:多態(tài)編程應(yīng)用 268
習(xí)題5 269
第6章 運算符重載 274
6.1 運算符重載基礎(chǔ) 275
6.2 重載二元運算符 277
6.2.1 類與二元運算符重載 277
6.2.2 非類成員方式重載二元運算符的特殊用途 280
6.3 重載一元運算符 282
6.3.1 作為成員函數(shù)重載 282
6.3.2 作為友元函數(shù)重載 284
6.4 特殊運算符重載 285
6.4.1 重載++和-- 285
6.4.2 下標[ ]和賦值運算符= 287
6.4.3 類型轉(zhuǎn)換運算符 289
6.4.4 仿函數(shù) 292
6.5 輸入/輸出運算符重載 293
6.6 編程實作:運算符重載編程應(yīng)用 295
習(xí)題6 300
第7章 模板和STL 303
7.1 模板的概念 304
7.2 函數(shù)模板和模板函數(shù) 305
7.2.1 函數(shù)模板的定義 305
7.2.2 函數(shù)模板的實例化 306
7.2.3 模板參數(shù) 307
7.3 類模板 311
7.3.1 類模板的概念 311
7.3.2 類模板的定義 311
7.3.3 類模板實例化 313
7.3.4 類模板的應(yīng)用 315
7.4 模板設(shè)計中的獨特問題 316
7.4.1 模板參數(shù)類型推導(dǎo) 316
7.4.2 內(nèi)聯(lián)與常量函數(shù)模板 320
7.4.3 默認模板實參 320
7.4.4 仿函數(shù)應(yīng)用 321
7.4.5 成員模板 322
7.4.6 可變參數(shù)函數(shù)模板 323
7.4.7 元編程的基本概念 324
7.4.8 模板重載、特化、非模板函數(shù)及調(diào)用次序 327
7.5 STL程序設(shè)計 330
7.5.1 函數(shù)對象 330
7.5.2 順序容器 331
7.5.3 迭代器 339
7.5.4 pair和tuple容器 342
7.5.5 關(guān)聯(lián)式容器 345
7.5.6 算法 352
7.5.7 STL容器和算法處理自定義類的常見問題 355
7.6 編程實作:模板和STL編程應(yīng)用 357
習(xí)題7 358
第8章 異常 362
8.1 異常處理概述 363
8.2 C++異常處理基礎(chǔ) 364
8.2.1 異常處理的結(jié)構(gòu) 364
8.2.2 異常捕獲 365
8.3 異常和函數(shù) 367
8.4 異常處理的特殊情況 368
8.5 異常和類 373
8.5.1 構(gòu)造函數(shù)和異常 373
8.5.2 異常類 375
8.5.3 派生異常類的處理 378
習(xí)題8 381
第9章 線程 383
9.1 程序、進程和線程 384
9.2 線程等待和線程ID獲取 388
9.2.1 線程等待 388
9.2.2 獲取線程ID 390
9.3 類和線程 391
9.4 線程同步 393
9.4.1 互斥鎖 393
9.4.2 讀寫鎖 396
9.4.3 信號量 397
9.4.4 條件變量 402
習(xí)題9 405
第10章 流和文件 410
10.1 C++ I/O流及流類庫 411
10.2 I/O流類的成員函數(shù) 412
10.2.1 類istream的常用成員函數(shù) 412
10.2.2 類ostream的常用成員函數(shù) 414
10.2.3 數(shù)據(jù)輸入、輸出的格式控制 415
10.3 文件操作 418
10.3.1 文件和流 418
10.3.2 二進制文件 420
10.3.3 隨機文件 423
習(xí)題10 425
參考文獻 428