深度探索C++14

深度探索C++14

《深度探索C++14》是2020年7月電子工業出版社出版的圖書,作者是Peter Gottschling。本書深入介紹了基於C++高級功能的複雜方法。

基本介紹

  • 中文名:深度探索C++14
  • 作者:【德】Peter Gottschling
  • 類別:計算機
  • 譯者:吳野
  • 出版社:電子工業出版社
  • 出版時間:2020年7月
  • 頁數:500 頁
  • 定價:128 元
  • 開本:16 開 
  • ISBN:9787121354984
內容簡介,作者簡介,

內容簡介

《深度探索C++14》從傳統的Hello World開始,先介紹了語言入門C++所必須的基本要素(如表達式、語句、聲明);再到和程式組織有關的函式、類;然後深入探討了C++所支持的泛型編程、元編程和面向對象等不同編程範式,並且提供了很多的例子可以讓讀者仔細體會它們之間的聯繫、區別和適用場景;最後再以一個中型項目為例介紹了一些大型工程所必備的基礎知識。
第1章 C++基礎(C++ Basics) 1
1.1 第一個程式(Our First Program) 1
1.2 變數(Variables) 4
1.3 操作符(Operators) 13
1.4 表達式和語句(Expressions and Statements) 25
1.5 函式(Functions) 33
1.6 錯誤處理(Error Handling) 41
1.7 I/O 48
1.8 數組、指針和引用(Arrays, Pointers, and References) 56
1.9 軟體項目結構化(Structuring Software Projects) 70
1.10 練習(Exercises) 75
第2章 類(Classes) 77
2.1 為普遍意義而不是技術細節編程 77
2.2 成員(Members) 79
2.3 設定值:構造函式和賦值(Setting Values: Constructors and Assignments) 85
2.4 析構函式(Destructors) 105
2.4.1 實現準則(ImplementationRules) 105
2.5 自動生成方法清單(Method Generation Résumé) 112
2.6 成員變數訪問(Accessing Member Variables) 113
2.7 操作符重載的設計(Operator Overloading Design) 118
2.8 練習(Exercises) 123
第3章 泛型編程(Generic Programming) 125
3.1 函式模板(Function Templates) 125
3.2 命名空間與函式查找(Namespaces and Function Lookup)135
3.3 類模板(Class Templates) 144
3.4 類型推導與定義(Type Deduction and Definition) 153
3.5 關於模板的一點點理論:概念(A Bit of Theory on Templates: Concepts) 158
3.6 模板特化(Template Specialization) 159
3.7 模板的非類型參數(Non-Type Parameters for Templates)168
3.8 仿函式(Functors) 170
3.9 匿名函式(Lambda) 180
3.10 變參模板(Variadic Templates) 186
3.11 練習(Exercises) 188
第4章 庫(Libraries) 192
4.1 標準模板庫(Standard Template Library) 193
4.2 數值(Numerics) 216
4.3 元編程(Meta-programming) 230
4.4 支持庫(Utilities) 234
4.6 並發(Concurrency) 244
4.7 標準之外的科學計算程式庫(Scientific Libraries Beyond the Standard) 248
4.8 練習(Exercises) 250
第5章 元編程(Meta-Programming)252
5.1 讓編譯器進行計算(Let the Compiler Compute)252
5.2 提供和使用類型信息(Providing and Using Type Information) 260
5.3 表達式模板(Expression Templates) 281
5.4 元最佳化:編寫你自己的編譯器最佳化(Meta-Tuning: Write Your Own Compiler Optimization) 290
5.5 練習(Exercises) 323
第6章 面向對象編程(Object-Oriented Programming) 326
6.1 基本原則(Basic Principles) 327
6.2 消除冗餘(Removing Redundancy) 339
6.3 多重繼承(Multiple Inheritance) 340
6.4 通過子類型進行動態選擇(Dynamic Selection by Sub-typing) 347
6.5 轉換(Conversion) 350
6.6 CRTP 359
第7章 科學計算項目(Scientific Projects)365
7.1 常微分方程解算器的實現(Implementation of ODE Solvers) 365
7.2 創建工程(Creating Projects) 377
7.3 最終的話(Some Final Words) 391
附錄A 雜談(Clumsy Stuff) 393
A.1 更多好的或者不好的軟體(More Good and Bad Scientific Software) 393
A.2 細節中的基礎(Basics in Detail) 400
A.3 現實世界的用例:矩陣求逆(Real-World Example: Matrix Inversion) 411
A.4 類的一些細節(Class Details) 421
A.5 方法的生成(Method Generation) 426
A.6 模板相關的細節(Template Details) 438
A.7 使用C++03中的std::vector(Using std::vector in C++03) 444
A.8 復古風格的動態選擇(Dynamic Selection in Old Style) 445
A.9 元編程的一些細節(Meta-Programming Details) 446
附錄B 編程工具(Programming Tools) 456
B.1 gcc 456
B.2 調試(Debugging) 457
B.3 記憶體分析(Memory Analysis) 462
B.4 gnuplot 463
B.5 UNIX、Linux和macOS系統(UNIX, Linux, andmacOS) 464
附錄C 語言定義(Language Definitions) 467
C.1 值類別(Value Categories) 467
C.2 操作符概覽(Operator Overview) 468
C.3 類型轉換規則(Conversion Rules) 470

作者簡介

Peter Gottschlling 致力於開發領先的科學計算軟體,並希望他的熱情能打動讀者。他開發了矩陣模板庫(Matrix Template Library 4,MTL4),同時也是許多程式庫的合作開發者,如BoostGraph Library。他在大學的基礎C++課程和專業培訓課程中分享了這些開發經驗,並最終促使了本書的誕生。
他是ISO C++標準委員會成員、德國程式語言標準委員會副主席、德勒斯登C++用戶組創始人。年少之時,他在德勒斯登工業大學同時學習計算機科學和數學,拿到了雙學士學位,並獲得了計算機科學專業的博士學位。在經歷了一場學術機構中的“冒險”之後,他創立了自己的公司SimuNova,最後回到了故鄉萊比錫,彼時正是萊比錫建城一千周年。他已婚,育有四個孩子。
譯者吳野,線上常用ID“空明流轉”。畢業後在數家IT企業工作過,擁有數年軟體開發和硬體設計經驗。C++為其常用程式語言之一,業餘時間也會閱讀一些C++標準和標準提案。

相關詞條

熱門詞條

聯絡我們