注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術工業(yè)技術建筑科學建筑設計C++17入門經(jīng)典(第5版)

C++17入門經(jīng)典(第5版)

C++17入門經(jīng)典(第5版)

定 價:¥99.00

作 者: (美)艾佛·霍爾頓,彼得·范維爾特
出版社: 清華大學出版社
叢編項:
標 簽: 暫缺

ISBN: 9787302527695 出版時間: 2019-06-01 包裝: 平裝
開本: 16開 頁數(shù): 524 字數(shù):  

內(nèi)容簡介

  《C++ 17入門經(jīng)典(第5版)》介紹如何使用z新的C++17編寫程序。從基礎知識講起,通過詳細分析示例,幫助讀者成為能夠自己編寫程序的C++程序員。參考《C++ 17入門經(jīng)典(第5版)》的內(nèi)容,并安裝z新的C++編譯器,讀者很快就能編寫真正的C++程序?!禖++ 17入門經(jīng)典(第5版)》不需要讀者有任何編程經(jīng)驗,因此在講解所有語言概念時,均給出了可以工作的程序示例,并且全部章節(jié)都包含練習題,以幫助讀者檢測并練習自己學到的知識?!禖++ 17入門經(jīng)典(第5版)》為正文中的所有代碼示例和練習題提供可下載的代碼。 《C++ 17入門經(jīng)典(第5版)》內(nèi)容已針對C++語言的z新版本C++17做了全面更新,并且介紹了現(xiàn)代C++的約定和z佳實踐?!禖++ 17入門經(jīng)典(第5版)》還介紹了C++標準庫的元素,它們?yōu)镃++17語言提供了必要的支持。

作者簡介

  Ivor Horton從數(shù)學系畢業(yè),卻被信息技術領域工作量少、回報高的前景所吸引。雖然現(xiàn)實證明,工作量大,回報相對一般,但是他與計算機一直相伴到今天。在不同的時期,他參與過編程、系統(tǒng)設計、咨詢以及相當復雜的項目的管理和實施工作。 Ivor有多年工程設計和制造控制系統(tǒng)的設計和實施經(jīng)驗。他使用多種編程語言開發(fā)過在不同場景中很實用的應用程序,并教會一些科學家和工程師如何使用編程語言開發(fā)一些實用的程序。他目前出版的圖書涉及C、C++和Java等編程語言。當他沒有在撰寫編程圖書或者為他人提供咨詢服務時,他會去釣魚或旅行,享受生活。Peter Van Weert是一名軟件工程師,主要興趣和專長是應用軟件開發(fā)、編程語言、算法和數(shù)據(jù)結構。他在魯汶大學以z優(yōu)畢業(yè)生榮譽獲得計算機科學碩士學位,并得到了考試委員會的祝賀。2010年,他在魯汶大學的聲明式編程語言和人工智能研究組完成了博士論文,主題是基于規(guī)則的編程語言的設計和高效編譯。在攻讀博士期間,他擔任面向?qū)ο缶幊蹋↗ava)、軟件分析與設計以及聲明式編程的助教。 畢業(yè)后,Peter在Nikon Metrology工作了6年多,負責3D激光掃描和點云檢查領域的大規(guī)模工業(yè)應用軟件設計。他學習并精通C++以及極大規(guī)模代碼庫的重構和調(diào)試,并進一步熟悉了軟件開發(fā)過程的各個方面,包括功能和技術需求的分析,以及敏捷的、基于Scrum的項目和團隊管理。 如今,Peter就職于Danaher的數(shù)字牙醫(yī)軟件研發(fā)部,為未來的牙醫(yī)業(yè)開發(fā)軟件。 在空余時間,他與人合作撰寫了兩本關于C++的圖書,開發(fā)了兩個獲獎的Windows 8應用,并且是比利時C++用戶組的定期專家演講人和董事會成員。

圖書目錄

目    錄
第1章  基本概念   1
1.1  現(xiàn)代C    1
1.2  標準庫   2
1.3  C 程序概念   2
1.3.1  源文件和頭文件   3
1.3.2  注釋和空白   3
1.3.3  預處理指令和標準庫頭文件   3
1.3.4  函數(shù)   3
1.3.5  語句   4
1.3.6  數(shù)據(jù)的輸入輸出   4
1.3.7  return語句   5
1.3.8  名稱空間   5
1.3.9  名稱和關鍵字   6
1.4  類和對象   6
1.5  模板   6
1.6  代碼的表示樣式和編程風格   7
1.7  創(chuàng)建可執(zhí)行文件   7
1.8  過程化編程和面向?qū)ο缶幊?nbsp;  8
1.9  表示數(shù)字   9
1.9.1  二進制數(shù)   9
1.9.2  十六進制數(shù)   10
1.9.3  負的二進制數(shù)   11
1.9.4  八進制數(shù)   12
1.9.5  Big-Endian和Little-Endian系統(tǒng)   12
1.9.6  浮點數(shù)   13
1.10  表示字符   14
1.10.1  ASCII 碼   14
1.10.2  UCS和Unicode   14
1.11  C 源字符   15
1.12  本章小結   17
1.13  練習   17
第2章  基本數(shù)據(jù)類型   19
2.1  變量、數(shù)據(jù)和數(shù)據(jù)類型   19
2.1.1  定義整型變量   19
2.1.2  零初始化   22
2.1.3  定義有固定值的變量   22
2.2  整型字面量   22
2.2.1  十進制整型字面量   23
2.2.2  十六進制的整型字面量   23
2.2.3  八進制的整型字面量   24
2.2.4  二進制的整型字面量   24
2.3  整數(shù)的計算   24
2.4  賦值運算   26
2.5  sizeof運算符   29
2.6  整數(shù)的遞增和遞減   30
2.7  定義浮點變量   31
2.8  浮點字面量   32
2.9  浮點數(shù)的計算   32
2.9.1  缺點   32
2.9.2  無效的浮點結果   33
2.9.3  數(shù)學函數(shù)   33
2.10  輸出流的格式化   35
2.11  混合的表達式和類型轉(zhuǎn)換   37
2.12  顯式類型轉(zhuǎn)換   38
2.13  確定數(shù)值的上下限   40
2.14  使用字符變量   41
2.15  auto關鍵字   42
2.16  本章小結   43
2.17  練習   43
第3章  處理基本數(shù)據(jù)類型   45
3.1  運算符的優(yōu)先級和相關性   45
3.2  位運算符   46
3.2.1  移位運算符   47
3.2.2  位模式下的邏輯運算   49
3.3  枚舉數(shù)據(jù)類型   53
3.4  數(shù)據(jù)類型的別名   55
3.5  變量的生存期   56
3.6  全局變量   56
3.7  本章小結   59
3.8  練習   59
第4章  決策   61
4.1  比較數(shù)據(jù)值   61
4.1.1  應用比較運算符   62
4.1.2  比較浮點數(shù)值   63
4.2  if語句   63
4.2.1  嵌套的if語句   65
4.2.2  字符分類和轉(zhuǎn)換   66
4.3  if-else語句   68
4.3.1  嵌套的if-else語句   69
4.3.2  理解嵌套的if語句   70
4.4  邏輯運算符   71
4.4.1  邏輯與運算符   71
4.4.2  邏輯或運算符   71
4.4.3  邏輯非運算符   72
4.4.4  組合邏輯運算符   72
4.4.5  對整數(shù)操作數(shù)應用邏輯運算符   73
4.4.6  對比邏輯運算符與位運算符   74
4.5  條件運算符   75
4.6  switch語句   76
4.7  語句塊和變量作用域   81
4.8  本章小結   82
4.9  練習   83
第5章  數(shù)組和循環(huán)   85
5.1  數(shù)組   85
5.2  理解循環(huán)   87
5.3  for循環(huán)   87
5.4  避免幻數(shù)   89
5.5  用初始化列表定義數(shù)組的大小   90
5.6  確定數(shù)組的大小   90
5.7  用浮點數(shù)控制for循環(huán)   91
5.8  使用更復雜的for循環(huán)控制表達式   93
5.9  基于范圍的for循環(huán)   94
5.10  while循環(huán)   95
5.11  do-while循環(huán)   96
5.12  嵌套的循環(huán)   98
5.13  跳過循環(huán)迭代   100
5.14  循環(huán)的中斷   101
5.15  使用無符號整數(shù)控制for循環(huán)   103
5.16  字符數(shù)組   104
5.17  多維數(shù)組   107
5.17.1  初始化多維數(shù)組   108
5.17.2  多維字符數(shù)組   110
5.18  在運行期間給數(shù)組分配內(nèi)存空間   111
5.19  數(shù)組的替代品   112
5.19.1  使用array容器   113
5.19.2  使用std::vector容器   116
5.20  本章小結   119
5.21  練習   120
第6章  指針和引用   121
6.1  什么是指針   121
6.2  地址運算符   123
6.3  間接運算符   124
6.4  為什么使用指針   125
6.5  char類型的指針   125
6.6  常量指針和指向常量的指針   128
6.7  指針和數(shù)組   130
6.7.1  指針的算術運算   130
6.7.2  使用數(shù)組名的指針表示法   132
6.8  動態(tài)內(nèi)存分配   133
6.8.1  棧和自由存儲區(qū)   134
6.8.2  運算符new和delete   134
6.8.3  數(shù)組的動態(tài)內(nèi)存分配   135
6.9  通過指針選擇成員   138
6.10  動態(tài)內(nèi)存分配的危險   138
6.10.1  懸掛指針和多次釋放   138
6.10.2  分配與釋放的不匹配   139
6.10.3  內(nèi)存泄漏   139
6.10.4  自由存儲區(qū)的碎片   139
6.11  內(nèi)存分配的黃金準則   140
6.12  原始指針和智能指針   140
6.12.1  使用unique_ptr指針   141
6.12.2  使用shared_ptr指針   143
6.13  理解引用   146
6.13.1  定義引用   146
6.13.2  在基于范圍的for循環(huán)中使用引用變量   147
6.14  本章小結   148
6.15  練習   148
第7章  操作字符串   151
7.1  更強大的string類   151
7.1.1  定義string對象   151
7.1.2  string對象的操作   154
7.1.3  訪問字符串中的字符   157
7.1.4  訪問子字符串   158
7.1.5  比較字符串   158
7.1.6  搜索字符串   162
7.1.7  修改字符串   167
7.1.8  對比std::string與std::vector   170
7.2  將字符串轉(zhuǎn)換為數(shù)字   171
7.3  字符串流   171
7.4  國際字符串   172
7.4.1  存儲wchar_t字符的字符串   172
7.4.2  包含Unicode字符串的對象   173
7.5  原始字符串字面量   173
7.6  本章小結   174
7.7  練習   175
第8章  定義函數(shù)   177
8.1  程序的分解   177
8.1.1  類中的函數(shù)   177
8.1.2  函數(shù)的特征   178
8.2  定義函數(shù)   178
8.2.1  函數(shù)體   179
8.2.2  返回值   180
8.2.3  函數(shù)聲明   181
8.3  給函數(shù)傳送實參   182
8.3.1  按值傳送   182
8.3.2  按引用傳送   187
8.3.3  字符串視圖:新的const string引用   192
8.4  默認實參值   194
8.5  main()函數(shù)的實參   196
8.6  從函數(shù)中返回值   196
8.6.1  返回指針   197
8.6.2  返回引用   199
8.6.3  對比返回值與輸出參數(shù)   200
8.6.4  返回類型推斷   200
8.6.5  使用可選值   201
8.7  靜態(tài)變量   203
8.8  內(nèi)聯(lián)函數(shù)   204
8.9  函數(shù)重載   204
8.9.1  重載和指針參數(shù)   206
8.9.2  重載和引用參數(shù)   206
8.9.3  重載和const參數(shù)   207
8.9.4  重載和默認實參值   208
8.10  遞歸   209
8.10.1  基本示例   209
8.10.2  遞歸算法   210
8.11  本章小結   215
8.12  練習   216
第9章  函數(shù)模板   219
9.1  函數(shù)模板   219
9.2  創(chuàng)建函數(shù)模板的實例   220
9.3  模板類型參數(shù)   221
9.4  顯式指定模板實參   221
9.5  函數(shù)模板的特例   222
9.6  函數(shù)模板和重載   222
9.7  帶有多個參數(shù)的函數(shù)模板   224
9.8  模板的返回類型推斷   225
9.8.1  decltype和拖尾返回類型   225
9.8.2  對比decltype(auto)、拖尾decltype()與auto   226
9.9  模板參數(shù)的默認值   226
9.10  非類型的模板參數(shù)   227
9.11  本章小結   229
9.12  練習   229
第10章  程序文件和預處理指令   231
10.1  理解轉(zhuǎn)換單元   231
10.1.1  單一定義規(guī)則   231
10.1.2  程序文件和鏈接   232
10.1.3  確定名稱的鏈接屬性   232
10.1.4  外部函數(shù)   233
10.1.5  外部變量   233
10.1.6  內(nèi)部名稱   235
10.2  預處理源代碼   236
10.3  定義預處理宏   236
10.3.1  定義類似于函數(shù)的宏   238
10.3.2  取消宏的定義   239
10.4  包含頭文件   240
10.4.1  防止重復頭文件的內(nèi)容   240
10.4.2  個頭文件   241
10.5  名稱空間   242
10.5.1  全局名稱空間   242
10.5.2  定義名稱空間   242
10.5.3  應用using聲明   244
10.5.4  函數(shù)和名稱空間   244
10.5.5  未命名的名稱空間   246
10.5.6  嵌套的名稱空間   247
10.5.7  名稱空間的別名   248
10.6  邏輯預處理指令   248
10.6.1  邏輯#if指令   248
10.6.2  測試指定標識符的值   249
10.6.3  多個代碼選擇   249
10.6.4  標準的預處理宏   250
10.6.5  檢查頭文件是否可用   251
10.7  調(diào)試方法   251
10.7.1  集成調(diào)試器   252
10.7.2  調(diào)試中的預處理指令   252
10.7.3  使用assert()宏   254
10.8  靜態(tài)斷言   255
10.9  本章小結   257
10.10  練習   257
第11章  定義自己的數(shù)據(jù)類型   259
11.1  類和面向?qū)ο缶幊?nbsp;  259
11.1.1  封裝   260
11.1.2  繼承   262
11.1.3  多態(tài)性   263
11.2  術語   263
11.3  定義類   264
11.4  構造函數(shù)   265
11.4.1  默認構造函數(shù)   265
11.4.2  定義類的構造函數(shù)   266
11.4.3  使用default關鍵字   267
11.4.4  在類的外部定義函數(shù)和構造函數(shù)   267
11.4.5  默認構造函數(shù)的參數(shù)值   268
11.4.6  使用成員初始化列表   269
11.4.7  使用explicit關鍵字   269
11.4.8  委托構造函數(shù)   271
11.4.9  副本構造函數(shù)   272
11.5  訪問私有類成員   273
11.6  this指針   274
11.7  const對象和const成員函數(shù)   275
11.7.1  const成員函數(shù)   276
11.7.2  const正確性   277
11.7.3  重載const   277
11.7.4  常量的強制轉(zhuǎn)換   279
11.7.5  使用mutable關鍵字   279
11.8  友元   280
11.8.1  類的友元函數(shù)   280
11.8.2  友元類   281
11.9  類的對象數(shù)組   282
11.10  類對象的大小   283
11.11  類的靜態(tài)成員   283
11.11.1  靜態(tài)成員變量   283
11.11.2  訪問靜態(tài)成員變量   286
11.11.3  靜態(tài)常量   286
11.11.4  類類型的靜態(tài)成員變量   287
11.11.5  靜態(tài)成員函數(shù)   288
11.12  析構函數(shù)   288
11.13  使用指針作為類成員   290
11.14  嵌套類   299
11.15  本章小結   302
11.16  練習   303
第12章  運算符重載   305
12.1  為類實現(xiàn)運算符   305
12.1.1  運算符重載   305
12.1.2  實現(xiàn)重載運算符   306
12.1.3  非成員運算符函數(shù)   307
12.1.4  提供對運算符的全部支持   308
12.1.5  在類中實現(xiàn)所有的比較運算符   309
12.2  可以重載的運算符   311
12.3  運算符函數(shù)習語   313
12.4  為輸出流重載
12.5  重載算術運算符   315
12.6  成員與非成員函數(shù)   318
12.7  重載一元運算符   320
12.8  重載遞增和遞減運算符   321
12.9  重載下標運算符   322
12.10  函數(shù)對象   326
12.11  重載類型轉(zhuǎn)換   326
12.12  重載賦值運算符   327
12.12.1  實現(xiàn)復制賦值運算符   328
12.12.2  復制賦值運算符與副本構造函數(shù)   330
12.12.3  賦值不同類型   330
12.13  本章小結   331
12.14  練習   331
第13章  繼承   333
13.1  類和面向?qū)ο缶幊?nbsp;  333
13.2  類的繼承   334
13.2.1  繼承和聚合   335
13.2.2  派生類   335
13.3  把類的成員聲明為protected   337
13.4  派生類成員的訪問級別   338
13.4.1  在類層次結構中使用訪問修飾符   338
13.4.2  在類層次結構中選擇訪問修飾符   339
13.4.3  改變繼承成員的訪問修飾符   340
13.5  派生類中的構造函數(shù)   341
13.5.1  派生類中的副本構造函數(shù)   343
13.5.2  派生類中的默認構造函數(shù)   344
13.5.3  繼承構造函數(shù)   344
13.6  繼承中的析構函數(shù)   345
13.7  重復的成員變量名   347
13.8  重復的成員函數(shù)名   347
13.9  多重繼承   348
13.9.1  多個基類   348
13.9.2  繼承成員的模糊性   349
13.9.3  重復繼承   352
13.9.4  虛基類   353
13.10  在相關的類類型之間轉(zhuǎn)換   353
13.11  本章小結   354
13.12  練習   354
第14章  多態(tài)性   355
14.1  理解多態(tài)性   355
14.1.1  使用基類指針   355
14.1.2  調(diào)用繼承的函數(shù)   357
14.1.3  虛函數(shù)   359
14.1.4  虛函數(shù)中的默認實參值   365
14.1.5  通過引用調(diào)用虛函數(shù)   366
14.1.6  多態(tài)集合   366
14.1.7  通過指針釋放對象   367
14.1.8  在指針和類對象之間轉(zhuǎn)換   369
14.1.9  動態(tài)強制轉(zhuǎn)換   370
14.1.10  調(diào)用虛函數(shù)的基類版本   373
14.1.11  在構造函數(shù)或析構函數(shù)中
調(diào)用虛函數(shù)   374
14.2  多態(tài)性引發(fā)的成本   375
14.3  確定動態(tài)類型   376
14.4  純虛函數(shù)   378
14.4.1  抽象類   379
14.4.2  用作接口的抽象類   381
14.5  本章小結   382
14.6  練習   383
第15章  運行時錯誤和異常   385
15.1  處理錯誤   385
15.2  理解異常   386
15.2.1  拋出異常   386
15.2.2  異常處理過程   388
15.2.3  導致拋出異常的代碼   389
15.2.4  嵌套的try塊   389
15.3  用類對象作為異常   392
15.3.1  匹配catch處理程序和異常   393
15.3.2  用基類處理程序捕獲派生類異常   394
15.4  重新拋出異常   396
15.5  未處理的異常   398
15.6  捕獲所有的異常   399
15.7  不拋出異常的函數(shù)   400
15.7.1  noexcept限定符   400
15.7.2  異常和析構函數(shù)   401
15.8  異常和資源泄漏   401
15.8.1  資源獲取即初始化   403
15.8.2  用于動態(tài)內(nèi)存的標準RAII類   404
15.9  標準庫異常   405
15.9.1  異常類的定義   406
15.9.2  使用標準異常   407
15.10  本章小結   409
15.11  練習   410
第16章  類模板   413
16.1  理解類模板   413
16.2  定義類模板   414
16.2.1  模板參數(shù)   414
16.2.2  簡單的類模板   415
16.3  定義類模板的成員函數(shù)   416
16.3.1  構造函數(shù)模板   416
16.3.2  析構函數(shù)模板   417
16.3.3  下標運算符模板   417
16.3.4  賦值運算符模板   419
16.4  創(chuàng)建類模板的實例   422
16.5  非類型的類模板參數(shù)   426
16.5.1  帶有非類型參數(shù)的成員函數(shù)的模板   427
16.5.2  非類型參數(shù)的實參   431
16.5.3  對比非類型模板實參與構造函數(shù)實參   431
16.6  模板參數(shù)的默認值   432
16.7  模板的顯式實例化   432
16.8  類模板特化   433
16.8.1  定義類模板特化   433
16.8.2  部分模板特化   433
16.8.3  從多個部分特化中選擇   434
16.9  在類模板中使用static_assert()   434
16.10  類模板的友元   435
16.11  帶有嵌套類的類模板   436
16.11.1  棧成員的函數(shù)模板   438
16.11.2  消除依賴名稱的歧義   441
16.12  本章小結   443
16.13  練習   443
第17章  移動語義   445
17.1  lvalue和rvalue   445
17.2  移動對象   447
17.2.1  傳統(tǒng)方法   449
17.2.2  定義移動成員   449
17.3  顯式移動對象   452
17.3.1  只能移動的類型   452
17.3.2  移動對象的繼續(xù)使用   453
17.4  看似矛盾的情況   454
17.4.1  std::move()并不移動任何東西   454
17.4.2  rvalue引用是一個lvalue   454
17.5  繼續(xù)探討函數(shù)定義   455
17.5.1  按rvalue引用傳送   455
17.5.2  按值傳送的歸來   456
17.5.3  按值返回   458
17.6  繼續(xù)討論定義移動成員   459
17.6.1  總是添加noexcept   459
17.6.2  “移動后交換”技術   462
17.7  特殊成員函數(shù)   463
17.7.1  默認移動成員   464
17.7.2  5的規(guī)則   464
17.7.3  0的規(guī)則   465
17.8  本章小結   466
17.9  練習   466
第18章  頭等函數(shù)   467
18.1  函數(shù)指針   467
18.1.1  定義函數(shù)指針   467
18.1.2  高階函數(shù)的回調(diào)函數(shù)   469
18.1.3  函數(shù)指針的類型別名   471
18.2  函數(shù)對象   472
18.2.1  基本的函數(shù)對象   472
18.2.2  標準函數(shù)對象   473
18.2.3  參數(shù)化函數(shù)對象   474
18.3  lambda表達式   475
18.3.1  定義lambda表達式   475
18.3.2  命名lambda閉包   476
18.3.3  向函數(shù)模板傳送lambda表達式   476
18.3.4  捕獲子句   477
18.4  std::function<>模板   481
18.5  本章小結   482
18.6  練習   483
第19章  容器與算法   485
19.1  容器   485
19.1.1  順序容器   485
19.1.2  棧和隊列   488
19.1.3  集合   489
19.1.4  映射   491
19.2  迭代器   494
19.2.1  迭代器設計模式   495
19.2.2  標準庫容器的迭代器   496
19.2.3  數(shù)組的迭代器   502
19.3  算法   503
19.3.1  個示例   503
19.3.2  尋找元素   504
19.3.3  輸出多個值   505
19.3.4  刪除-擦除技術   507
19.3.5  排序   507
19.3.6  并行算法   508
19.4  本章小結   508
19.5  練習   509

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) www.afriseller.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號