注冊(cè) | 登錄讀書(shū)好,好讀書(shū),讀好書(shū)!
讀書(shū)網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書(shū)科學(xué)技術(shù)工業(yè)技術(shù)建筑科學(xué)建筑設(shè)計(jì)C++高級(jí)編程(第4版)

C++高級(jí)編程(第4版)

C++高級(jí)編程(第4版)

定 價(jià):¥138.00

作 者: (美)馬克·葛瑞格爾
出版社: 清華大學(xué)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

購(gòu)買(mǎi)這本書(shū)可以去


ISBN: 9787302526315 出版時(shí)間: 2019-04-01 包裝: 平裝
開(kāi)本: 16開(kāi) 頁(yè)數(shù): 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  ·展現(xiàn)C++思考方式,以便充分利用該語(yǔ)言中影響深遠(yuǎn)的功能來(lái)開(kāi)發(fā)高效的解決方案。 ·闡釋鮮為人知的元素,披露避開(kāi)常見(jiàn)陷阱的技巧,分享提示、技巧和方案,以幫助提高工作效率和軟件性能。 ·列出富有挑戰(zhàn)、貼近實(shí)用、具有多種用途的代碼段,可根據(jù)需要將這些代碼段移植到任何項(xiàng)目中。 ·濃墨重彩地描述C++17的新功能,如結(jié)構(gòu)化綁定、嵌套的名稱(chēng)空間和constexpr if等。 ·深入討論C++17新的標(biāo)準(zhǔn)庫(kù)功能,比如string_view、optional類(lèi)、并行算法和文件系統(tǒng)API等。

作者簡(jiǎn)介

  Marc Gregoire 是一名軟件工程師,畢業(yè)于比利時(shí)魯文大學(xué),擁有計(jì)算機(jī)科學(xué)工程碩士學(xué)位。之后,他在魯文大學(xué)獲得人工智能專(zhuān)業(yè)的優(yōu)等碩士學(xué)位。完成學(xué)業(yè)后,他開(kāi)始為軟件咨詢(xún)公司Ordina Belgium 工作。他曾在Siemens 和Nokia Siemens Networks為大型電信運(yùn)營(yíng)商提供有關(guān)在Solaris 上運(yùn)行關(guān)鍵2G和3G軟件的咨詢(xún)服務(wù)。這份工作要求與來(lái)自南美、美國(guó)、歐洲、中東、非洲和亞洲的國(guó)際團(tuán)隊(duì)合作。Marc 目前擔(dān)任Nikon Metrology(www.nikonmetrology.com)的軟件架構(gòu)師;Nikon Metrology 是Nikon 的分公司,是領(lǐng)先的精密光學(xué)儀器和3D 掃描軟件供應(yīng)商。Marc 的主要技術(shù)專(zhuān)長(zhǎng)是C/C++,特別是Microsoft VC++和MFC 框架。他還擅長(zhǎng)在Windows 和Linux 平臺(tái)上開(kāi)發(fā)24×7 小時(shí)運(yùn)行的C++程序,例如KNX/EIB 家庭自動(dòng)化監(jiān)控軟件。除了C/C++之外,Marc 還喜歡C#,并且會(huì)用PHP 創(chuàng)建網(wǎng)頁(yè)。2007 年4 月,他憑借Visual C++方面的專(zhuān)業(yè)技能,獲得了微軟年度MVP 稱(chēng)號(hào)。Marc 還是比利時(shí)C++用戶(hù)組(www.becpp.org)的創(chuàng)始人,是C++ Standard Library Quick Reference(Apress)一書(shū)的作者,以及多家出版社出版的多本書(shū)籍的技術(shù)編輯,是CodeGuru 論壇上的活躍分子(id 為Marc G)。Marc還在www.nuonsoft.com/blog/上維護(hù)了一個(gè)博客,他熱愛(ài)旅游和烹飪。

圖書(shū)目錄

第 I 部分 專(zhuān)業(yè)的C++簡(jiǎn)介

第1 章 C++和標(biāo)準(zhǔn)庫(kù)速成   2

1.1 C++基礎(chǔ)知識(shí)   2

1.1.1 小程序“hello world”    3

1.1.2 名稱(chēng)空間   .5

1.1.3 字面量   6

1.1.4 變量   7

1.1.5 運(yùn)算符   8

1.1.6 類(lèi)型   10

1.1.7 條件語(yǔ)句   12

1.1.8 邏輯比較運(yùn)算符   14

1.1.9 函數(shù)   15

1.1.10 C風(fēng)格的數(shù)組   16

1.1.11 std::array   17

1.1.12 std::vector    17

1.1.13 結(jié)構(gòu)化綁定   18

1.1.14 循環(huán)   18

1.1.15 初始化列表   19

1.1.16 這些都是基礎(chǔ)   19

1.2 深入研究C++   20

1.2.1 C++中的字符串   20

1.2.2 指針和動(dòng)態(tài)內(nèi)存   20

1.2.3 const的多種用法   24

1.2.4 引用   24

1.2.5 異常   25

1.2.6 類(lèi)型推斷   26

1.3 作為面向?qū)ο笳Z(yǔ)言的C++    27

1.3.1 定義類(lèi)   27

1.3.2 使用類(lèi)   29

1.4 統(tǒng)一初始化   29

1.5 標(biāo)準(zhǔn)庫(kù)   31

1.6 第一個(gè)有用的C++程序   31

1.6.1 雇員記錄系統(tǒng)   32

1.6.2 Employee類(lèi)   32

1.6.3 Database類(lèi)   34

1.6.4 用戶(hù)界面    36

1.6.5 評(píng)估程序    38

1.7 本章小結(jié)    38

第2 章 使用string 和string_view    39

2.1 動(dòng)態(tài)字符串    39

2.1.1 C風(fēng)格的字符串    39

2.1.2 字符串字面量    41

2.1.3 C++ std::string類(lèi)    42

2.1.4 std::string_view類(lèi)    46

2.1.5 非標(biāo)準(zhǔn)字符串    47

2.2 本章小結(jié)    47

第3 章 編碼風(fēng)格   48

3.1 良好外觀的重要性    48

3.1.1 事先考慮    48

3.1.2 良好風(fēng)格的元素    49

3.2 為代碼編寫(xiě)文檔    49

3.2.1 使用注釋的原因    49

3.2.2 注釋的風(fēng)格    52

3.3 分解       55

3.3.1 通過(guò)重構(gòu)分解    56

3.3.2 通過(guò)設(shè)計(jì)來(lái)分解    56

3.3.3 本書(shū)中的分解    56

3.4 命名       56

3.4.1 選擇恰當(dāng)?shù)拿Q(chēng)    57

3.4.2 命名約定    57

3.5 使用具有風(fēng)格的語(yǔ)言特性    59

3.5.1 使用常量    59

3.5.2 使用引用代替指針    59

3.5.3 使用自定義異常    59

3.6 格式       60

3.6.1 關(guān)于大括號(hào)對(duì)齊的爭(zhēng)論    60

3.6.2 關(guān)于空格和圓括號(hào)的爭(zhēng)論    61

3.6.3 空格和制表符    61

3.7 風(fēng)格的挑戰(zhàn)    61

3.8 本章小結(jié)       62

第 II 部分 專(zhuān)業(yè)的C++軟件設(shè)計(jì)

第4 章 設(shè)計(jì)專(zhuān)業(yè)的C++程序   64

4.1 程序設(shè)計(jì)概述    64

4.2 程序設(shè)計(jì)的重要性    65

4.3 C++設(shè)計(jì)的特點(diǎn)    66

4.4 C++設(shè)計(jì)的兩個(gè)原則    67

4.4.1 抽象       67

4.4.2 重用       68

4.5 重用代碼       69

4.5.1 關(guān)于術(shù)語(yǔ)的說(shuō)明    69

4.5.2 決定是否重用代碼    70

4.5.3 重用代碼的策略    71

4.5.4 綁定第三方應(yīng)用程序    74

4.5.5 開(kāi)放源代碼庫(kù)    75

4.5.6 C++標(biāo)準(zhǔn)庫(kù)    76

4.6 設(shè)計(jì)一個(gè)國(guó)際象棋程序    76

4.6.1 需求       76

4.6.2 設(shè)計(jì)步驟    77

4.7 本章小結(jié)       80

第5 章 面向?qū)ο笤O(shè)計(jì)   82

5.1 過(guò)程化的思考方式    82

5.2 面向?qū)ο笏枷?nbsp;   83

5.2.1 類(lèi)       83

5.2.2 組件       83

5.2.3 屬性       83

5.2.4 行為       84

5.2.5 綜合考慮    84

5.3 生活在對(duì)象世界里    85

5.3.1 過(guò)度使用對(duì)象    85

5.3.2 過(guò)于通用的對(duì)象    85

5.4 對(duì)象之間的關(guān)系    86

5.4.1 “有一個(gè)”關(guān)系    86

5.4.2 “是一個(gè)”關(guān)系(繼承)    87

5.4.3 “有一個(gè)”與“是一個(gè)”的區(qū)別   88

5.4.4 not-a關(guān)系    90

5.4.5 層次結(jié)構(gòu)    91

5.4.6 多重繼承    91

5.4.7 混入類(lèi)     92

5.5 抽象        93

5.5.1 接口與實(shí)現(xiàn)     93

5.5.2 決定公開(kāi)的接口    93

5.5.3 設(shè)計(jì)成功的抽象    94

5.6 本章小結(jié)       95

第6 章 設(shè)計(jì)可重用代碼    96

6.1 重用哲學(xué)       96

6.2 如何設(shè)計(jì)可重用代碼    97

6.2.1 使用抽象    97

6.2.2 構(gòu)建理想的重用代碼     98

6.2.3 設(shè)計(jì)有用的接口    102

6.2.4 SOLID原則      106

6.3 本章小結(jié)       106

第 III 部分 專(zhuān)業(yè)的C++編碼方法

第7 章 內(nèi)存管理      108

7.1 使用動(dòng)態(tài)內(nèi)存     108

7.1.1 如何描繪內(nèi)存     109

7.1.2 分配和釋放    110

7.1.3 數(shù)組        111

7.1.4 使用指針    116

7.2 數(shù)組-指針的對(duì)偶性    117

7.2.1 數(shù)組就是指針      117

7.2.2 并非所有指針都是數(shù)組   119

7.3 低級(jí)內(nèi)存操作   119

7.3.1 指針運(yùn)算    119

7.3.2 自定義內(nèi)存管理    120

7.3.3 垃圾回收    120

7.3.4 對(duì)象池     121

7.4 智能指針       121

7.4.1 unique_ptr     122

7.4.2 shared_ptr     124

7.4.3 weak_ptr     125

7.4.4 移動(dòng)語(yǔ)義    126

7.4.5 enable_shared_from_this     127

7.4.6 舊的、過(guò)時(shí)的/取消的auto_ptr   127

7.5 常見(jiàn)的內(nèi)存陷阱     127

7.5.1 分配不足的字符串     127

7.5.2 訪問(wèn)內(nèi)存越界     128

7.5.3 內(nèi)存泄漏    128

7.5.4 雙重刪除和無(wú)效指針    131

7.6 本章小結(jié)       131

第8 章 熟悉類(lèi)和對(duì)象   132

8.1 電子表格示例介紹    132

8.2 編寫(xiě)類(lèi)       133

8.2.1 類(lèi)定義    133

8.2.2 定義方法   135

8.2.3 使用對(duì)象   137

8.3 對(duì)象的生命周期   138

8.3.1 創(chuàng)建對(duì)象   138

8.3.2 銷(xiāo)毀對(duì)象   149

8.3.3 對(duì)象賦值   149

8.3.4 編譯器生成的復(fù)制構(gòu)造函數(shù)和復(fù)制賦值運(yùn)算符    151

8.3.5 復(fù)制和賦值的區(qū)別    151

8.4 本章小結(jié)       153

第9 章 精通類(lèi)與對(duì)象     154

9.1 友元      154

9.2 對(duì)象的動(dòng)態(tài)內(nèi)存分配   155

9.2.1 Spreadsheet類(lèi)   155

9.2.2 使用析構(gòu)函數(shù)釋放內(nèi)存   157

9.2.3 處理復(fù)制和賦值    158

9.2.4 使用移動(dòng)語(yǔ)義處理移動(dòng)   162

9.2.5 零規(guī)則    167

9.3 與方法有關(guān)的更多內(nèi)容   167

9.3.1 靜態(tài)方法   167

9.3.2 const方法   168

9.3.3 方法重載   169

9.3.4 內(nèi)聯(lián)方法   170

9.3.5 默認(rèn)參數(shù)   171

9.4 不同的數(shù)據(jù)成員類(lèi)型   172

9.4.1 靜態(tài)數(shù)據(jù)成員   172

9.4.2 靜態(tài)常量數(shù)據(jù)成員    173

9.4.3 引用數(shù)據(jù)成員   174

9.4.4 常量引用數(shù)據(jù)成員    175

9.5 嵌套類(lèi)       175

9.6 類(lèi)內(nèi)的枚舉類(lèi)型   176

9.7 運(yùn)算符重載   177

9.7.1 示例:為SpreadsheetCell實(shí)現(xiàn)加法   177

9.7.2 重載算術(shù)運(yùn)算符    179

9.7.3 重載比較運(yùn)算符    181

9.7.4 創(chuàng)建具有運(yùn)算符重載的類(lèi)型   181

9.8 創(chuàng)建穩(wěn)定的接口   182

9.9 本章小結(jié)         184

第10 章 揭秘繼承技術(shù)     185

10.1 使用繼承構(gòu)建類(lèi)   185

10.1.1 擴(kuò)展類(lèi)   186

10.1.2 重寫(xiě)方法    188

10.2 使用繼承重用代碼    194

10.2.1 WeatherPrediction類(lèi)    194

10.2.2 在派生類(lèi)中添加功能    195

10.2.3 在派生類(lèi)中替換功能    196

10.3 利用父類(lèi)       196

10.3.1 父類(lèi)構(gòu)造函數(shù)    196

10.3.2 父類(lèi)的析構(gòu)函數(shù)    197

10.3.3 使用父類(lèi)方法    198

10.3.4 向上轉(zhuǎn)型和向下轉(zhuǎn)型    200

10.4 繼承與多態(tài)性    201

10.4.1 回到電子表格    201

10.4.2 設(shè)計(jì)多態(tài)性的電子表格單元格  201

10.4.3 SpreadsheetCell基類(lèi)    202

10.4.4 獨(dú)立的派生類(lèi)    203

10.4.5 利用多態(tài)性    204

10.4.6 考慮將來(lái)    205

10.5 多重繼承       206

10.5.1 從多個(gè)類(lèi)繼承    206

10.5.2 名稱(chēng)沖突和歧義基類(lèi)    207

10.6 有趣而晦澀的繼承問(wèn)題    209

10.6.1 修改重寫(xiě)方法的特征    209

10.6.2 繼承的構(gòu)造函數(shù)    211

10.6.3 重寫(xiě)方法時(shí)的特殊情況    214

10.6.4 派生類(lèi)中的復(fù)制構(gòu)造函數(shù)和賦值運(yùn)算符    219

10.6.5 運(yùn)行時(shí)類(lèi)型工具    220

10.6.6 非public繼承    221

10.6.7 虛基類(lèi)    221

10.7 本章小結(jié)       222

第11 章 理解靈活而奇特的C++    223

11.1 引用       223

11.1.1 引用變量    224

11.1.2 引用數(shù)據(jù)成員    225

11.1.3 引用參數(shù)    225

11.1.4 將引用作為返回值    226

11.1.5 右值引用    226

11.1.6 使用引用還是指針    227

11.2 關(guān)鍵字的疑問(wèn)    229

11.2.1 const關(guān)鍵字    229

11.2.2 static關(guān)鍵字    232

11.2.3 非局部變量的初始化順序 235

11.2.4 非局部變量的銷(xiāo)毀順序    235

11.3 類(lèi)型和類(lèi)型轉(zhuǎn)換    235

11.3.1 類(lèi)型別名    235

11.3.2 函數(shù)指針的類(lèi)型別名    236

11.3.3 方法和數(shù)據(jù)成員的指針的類(lèi)型別名   238

11.3.4 typedef    238

11.3.5 類(lèi)型轉(zhuǎn)換    239

11.4 作用域解析    242

11.5 特性       243

11.5.1 [[noreturn]]特性    243

11.5.2 [[deprecated]]特性    244

11.5.3 [[fallthrough]]特性    244

11.5.4 [[nodiscard]]特性    244

11.5.5 [[maybe_unused]]特性    244

11.5.6 供應(yīng)商專(zhuān)用特性    245

11.6 用戶(hù)定義的字面量    245

11.7 頭文件       246

11.8 C 的實(shí)用工具    247

11.8.1 變長(zhǎng)參數(shù)列表    247


本目錄推薦

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