《C++20高級編程(第5版)》是清華大學出版社2022年4月出版的圖書,分為上、下兩冊,作者是[比]馬克·格雷戈勒(Marc Gregoire),譯者是程式喵大人、惠惠和墨梵。
基本介紹
- 中文名:C++20高級編程(第5版)
- 作者:[比]馬克·格雷戈勒(Marc Gregoire)
- 原作品:Professional C++, Fifth Edition
- 譯者:程式喵大人、惠惠、墨梵
- 出版社:清華大學出版社
- 出版時間:2022年4月
- 頁數:1005 頁
- 定價:228 元
- 開本:16 開
- 裝幀:平裝
- ISBN:9787302602132
內容簡介,圖書目錄,
內容簡介
擁抱C++的深度和複雜性,挖掘更多可能
眾所周知,C++難以掌握,但其廣泛的功能使其成為遊戲和商業軟體應用程式中最常用的語言。即使是有經驗的用戶通常也不熟悉許多高級特性,但C++20的發布提供了探索該語言全部功能的機會。《C++20高級編程(第5版)》為C++的必要內容提供了一個代碼密集型、面向解決方案的指南,包括版本中的工具和功能。本書包含面向現實世界編程的實用指導,是程式設計師深入研究C++的理想機會。第5版涵蓋了C++20的內容。
主要內容
● 演示如何用C++思考,以最大限度地發揮語言的深遠能力,並開發有效的解決方案
● 解釋難以理解的原理,進行陷阱警告,分享提高效率和性能的提示、技巧和變通方法
● 呈現各種具有挑戰性的、真實世界的程式,其用途廣泛,足以融入任何項目
● 重點介紹C++20的新特性,包括模組、概念、三向比較、立即執行函式等
● 深入討論新的C++20標準庫功能,例如文本格式化、範圍、原子智慧型指針、同步原語、日期、時區等
圖書目錄
第I部分 專業的C++簡介
第1章 C++和標準庫速成 3
1.1 C++速成 3
1.1.1 小程式“Hello World” 4
1.1.2 名稱空間 7
1.1.3 字面量 9
1.1.4 變數 9
1.1.5 運算符 12
1.1.6 枚舉類型 14
1.1.7 結構體 16
1.1.8 條件語句 17
1.1.9 條件運算符 19
1.1.10 邏輯比較運算符 20
1.1.11 三向比較運算符 21
1.1.12 函式 22
1.1.13 屬性 23
1.1.14 C風格的數組 26
1.1.15 std::array 27
1.1.16 std::vector 28
1.1.17 std::pair 28
1.1.18 std::optional 29
1.1.19 結構化綁定 30
1.1.20 循環 30
1.1.21 初始化列表 31
1.1.22 C++中的字元串 32
1.1.23 作為面向對象語言的C++ 32
1.1.24 作用域解析 35
1.1.25 統一初始化 36
1.1.26 指針和動態記憶體 39
1.1.27 const的用法 43
1.1.28 constexpr關鍵字 45
1.1.29 consteval關鍵字 46
1.1.30 引用 47
1.1.31 const_cast () 55
1.1.32 異常 56
1.1.33 類型別名 56
1.1.34 類型定義 57
1.1.35 類型推斷 58
1.1.36 標準庫 60
1.2 第一個大型的C++程式 61
1.2.1 雇員記錄系統 61
1.2.2 Employee類 61
1.2.3 Database類 64
1.2.4 用戶界面 67
1.2.5 評估程式 69
1.3 本章小結 69
1.4 練習 69
第2章 使用string和string_view 71
2.1 動態字元串 71
2.1.1 C風格字元串 71
2.1.2 字元串字面量 73
2.1.3 C++ std::string類 75
2.1.4 數值轉換 78
2.1.5 std::string_view類 81
2.1.6 非標準字元串 84
2.2 字元串格式化 84
2.2.1 格式說明符 85
2.2.2 格式說明符錯誤 87
2.2.3 支持自定義類型 87
2.3 本章小結 90
2.4 練習 90
第3章 編碼風格 91
3.1 良好外觀的重要性 91
3.1.1 事先考慮 91
3.1.2 良好風格的元素 92
3.2 為代碼編寫文檔 92
3.2.1 使用注釋的原因 92
3.2.2 注釋的風格 96
3.3 分解 99
3.3.1 通過重構分解 100
3.3.2 通過設計分解 101
3.3.3 本書中的分解 101
3.4 命名 101
3.4.1 選擇恰當的名稱 101
3.4.2 命名約定 102
3.5 使用具有風格的語言特性 103
3.5.1 使用常量 104
3.5.2 使用引用代替指針 104
3.5.3 使用自定義異常 104
3.6 格式 105
3.6.1 關於大括弧對齊的爭論 105
3.6.2 關於空格和圓括弧的爭論 106
3.6.3 空格、制表符、換行符 106
3.7 風格的挑戰 107
3.8 本章小結 107
3.9 練習 107
第II部分 專業的C++軟體設計
第4章 設計專業的C++程式 113
4.1 程式設計概述 113
4.2 程式設計的重要性 114
4.3 C++設計 116
4.4 C++設計的兩個原則 116
4.4.1 抽象 116
4.4.2 重用 118
4.5 重用現有代碼 119
4.5.1 關於術語的說明 119
4.5.2 決定是否重用代碼 120
4.5.3 重用代碼的指導原則 121
4.6 設計一個西洋棋程式 127
4.6.1 需求 127
4.6.2 設計步驟 127
4.7 本章小結 132
4.8 練習 133
第34章 開發跨平台和跨語言的應用程式 935
34.1 跨平台開發 935
34.1.1 架構問題 935
34.1.2 實現問題 938
34.1.3 平台專用功能 940
34.2 跨語言開發 940
34.2.1 混用C和C++ 941
34.2.2 改變范型 941
34.2.3 連結C代碼 944
34.2.4 從C#調用C++代碼 946
34.2.5 C++/CLI在C++中使用C#代碼和在C#中使用C++代碼 947
34.2.6 在Java中使用JNI調用C++代碼 948
34.2.7 從C++代碼調用腳本 950
34.2.8 從腳本調用C++代碼 950
34.2.9 從C++調用彙編代碼 952
34.3 本章小結 953
34.4 練習 953
第VI部分 附錄
附錄A C++面試 957
線上資源(掃描封底二維碼下載)
附錄B 標準庫頭檔案 977
附錄C UML簡介 983
附錄D 帶註解的參考文獻 989