深度探索C++14(簡體書)
- ISBN13:9787121354984
- 出版社:電子工業出版社
- 作者:(德)彼得‧哥特史林
- 裝訂/頁數:平裝/473頁
- 規格:24cm*17cm (高/寬)
- 版次:一版
- 出版日:2020/07/01
商品簡介
名人/編輯推薦
如今科學工程項目越來越大、越來越複雜,許多項目都採用C++來完成。同時,隨著嵌入式硬件的日益強大,嵌入式軟件編程語言也轉向C++。從嵌入式硬件到高級編程抽象,C++幾乎支持每個層級的編程。總而言之,C++是一門每一個技術人員都需要瞭解的語言。
本書深入介紹了基於C++高級功能的複雜方法。作者選用了多個不同領域的案例,同時結合了向物理學、數學和工程學等專業學生教授C++的豐富經驗,來介紹C++中的關鍵概念。
本書旨在幫助你快速入門,也會讓你掌握從lambda表達式到模板表達式的諸多高階功能。 你還將學習如何使用C++強大的程序庫:標準模板庫(STL)和用於算法、線性代數、微分方程、圖形的科學類庫。
作者演示了如何使用面向對象、泛型、元編程和過程式編程來編寫清晰明瞭、直觀練達的軟件。當你學完本書,你將掌握如何使用C++來編寫高質量、高性能的軟件。
目次
1.1 第一個程序(Our First Program) 1
1.2 變量(Variables) 4
1.2.1 常量(Constants) 7
1.2.2 字面量(Literals) 7
1.2.3 非窄化的初始化(non-narrowing initialization) 9
1.2.4 作用域(Scopes) 11
1.3 操作符(Operators) 13
1.3.1 算術操作符(Arithmetic Operators) 14
1.3.2 布爾操作符(Boolean Operators) 17
1.3.3 位操作符(Bitwise Operators) 18
1.3.4 賦值(Assignment) 19
1.3.5 程序流(Program Flow) 19
1.3.6 內存處理(Memory Handling) 20
1.3.7 訪問操作符(Access Operators) 21
1.3.8 類型處理(Type Handling) 21
1.3.9 錯誤處理(Error Handling) 21
1.3.10 重載(Overloading) 22
1.3.11 操作符優先級(Operator Precedence) 22
1.3.12 避免副作用(Avoid Side Effects!) 22
1.4 表達式和語句(Expressions and Statements) 25
1.4.1 表達式(Expressions) 25
1.4.2 語句(Statements) 26
1.4.3 分支(Branching) 27
1.4.4 循環(Loops) 29
1.4.5 goto 33
1.5 函數(Functions) 33
1.5.1 參數(Arguments) 34
1.5.2 返回結果(Returning Results) 36
1.5.3 內聯(Inlining) 37
1.5.4 重載(Overloading) 38
1.5.5 main函數(main Function) 40
1.6 錯誤處理(Error Handling) 41
1.6.1 斷言(Assertions) 41
1.6.2 異常(Exceptions) 43
1.6.3 靜態斷言(Static Assertions) 48
1.7 I/O 48
1.7.1 標準輸出(Standard Output) 48
1.7.2 標準輸入(Standard Input) 49
1.7.3 文件的輸入和輸出(Input/Output with Files) 49
1.7.4 泛化的流概念(Generic Stream Concept) 50
1.7.5 格式化(Formatting) 51
1.7.6 處理輸入輸出錯誤(Dealing with I/O Errors) 53
1.8 數組、指針和引用(Arrays, Pointers, and References) 56
1.8.1 數組(Arrays) 56
1.8.2 指針(Pointers) 58
1.8.3 智能指針(Smart Pointers) 62
1.8.4 引用(References) 65
1.8.5 指針和引用的比較(Comparison between Pointers and References) 66
1.8.6 不要引用過期數據(Do Not Refer to Outdated Data!) 67
1.8.7 數組的容器(Containers for Arrays) 67
1.9 軟件項目結構化(Structuring Software Projects) 70
1.9.1 注釋(Comments) 70
1.9.2 預編譯指示字(Preprocessor Directives) 71
1.10 練習(Exercises) 75
1.10.1 年齡(Age) 75
1.10.2 數組和指針(Arrays and Pointers) 76
1.10.3 讀取一個矩陣市場文件的頭部(Read the Header of a Matrix
Market File) 76
第2章 類(Classes) 77
2.1 為普遍意義而不是技術細節編程(Program for Universal Meaning Not for
Technical Details) 77
2.2 成員(Members) 79
2.2.1 成員變量(Member Variables) 80
2.2.2 可訪問性(Accessibility) 80
2.2.3 訪問操作符(Access Operators) 83
2.2.4 類的靜態聲明符(The Static Declarator for Classes) 84
2.2.5 成員函數(Member Functions) 84
2.3 設置值:構造函數和賦值(Setting Values: Constructors and Assignments) 85
2.3.1 構造函數(Constructors) 86
2.3.2 賦值(Assignment) 96
2.3.3 初始化器列表(Initializer Lists) 97
2.3.4 一致性初始化(Uniform Initialization) 99
2.3.5 移動語義(Move Semantic) 101
2.4 析構函數(Destructors) 105
2.4.1 實現準則(Implementation Rules) 105
2.4.2 適當處理資源(Dealing with Resources Properly) 106
2.5 自動生成方法清單(Method Generation Résumé) 112
2.6 成員變量訪問(Accessing Member Variables) 113
2.6.1 訪問函數(Access Functions) 113
2.6.2 下標操作符(Subscript Operator) 115
2.6.3 常量成員函數(Constant Member Functions) 116
2.6.4 引用限定的變量(Reference-Qualified Members) 117
2.7 操作符重載的設計(Operator Overloading Design) 118
2.7.1 保持一致!(Be Consistent!) 119
2.7.2 注意優先級(Respect the Priority) 120
2.7.3 成員函數和自由函數(Member or Free Function) 120
2.8 練習(Exercises) 123
2.8.1 多項式(Polynomial) 123
2.8.2 移動賦值(Move Assignment) 123
2.8.3 初始化器列表(Initializer List) 123
2.8.4 資源管理(Resource Rescue) 124
第3章 泛型編程(Generic Programming) 125
3.1 函數模板(Function Templates) 125
3.1.1 實例化(Instantiation) 127
3.1.2 參數類型的推導(Parameter Type Deduction) 128
3.1.3 在模板中處理錯誤(Dealing with Errors in Templates) 132
3.1.4 混合類型(Mixing Types) 133
3.1.5 一致性初始化(Uniform Initialization) 134
3.1.6 自動返回值類型(Automatic return Type) 134
3.2 命名空間與函數查找(Namespaces and Function Lookup) 135
3.2.1 命名空間(Namespaces) 135
3.2.2 參數相關查找(Argument-Dependent Lookup) 138
3.2.3 命名空間限定還是ADL(Namespace Qualification or ADL) 142
3.3 類模板(Class Templates) 144
3.3.1 一個容器的範例(A Container Example) 144
3.3.2 為類和函數設計統一的接口(Designing Uniform Class and
Function Interfaces) 146
3.4 類型推導與定義(Type Deduction and Definition) 153
3.4.1 自動變量類型(Automatic Variable Type) 153
3.4.2 表達式的類型(Type of an Expression) 154
3.4.3 decltype(auto) 155
3.4.4 定義類型(Defining Types) 156
3.5 關於模板的一點點理論:概念(A Bit of Theory on Templates: Concepts) 158
3.6 模板特化(Template Specialization) 159
3.6.1 為單個類型特化類(Specializing a Class for One Type) 159
3.6.2 函數特化和重載(Specializing and Overloading Functions) 162
3.6.3 部分特化
主題書展
更多主題書展
更多書展本週66折
您曾經瀏覽過的商品
購物須知
大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。
特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。
無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。
為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。
若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。