C++之美:代碼整潔、安全又跑得快的30個要訣(英文版)

C++之美:代碼整潔、安全又跑得快的30個要訣(英文版)

《C++之美:代碼整潔、安全又跑得快的30個要訣(英文版)》是電子工業出版社出版圖書,作者【美】J. 蓋伊·戴維森 凱特·格雷戈里。

基本介紹

  • 中文名C++之美:代碼整潔、安全又跑得快的30個要訣(英文版)
  • 作者:【美】J. 蓋伊·戴維森 凱特·格雷戈里
  • 出版時間:2024年5月
  • 出版社:電子工業出版社
  • 頁數:332 頁
  • ISBN9787121446009
  • 定價:109 元
  • 開本:16 開
內容簡介,圖書目錄,作者簡介,

內容簡介

《C++之美:代碼整潔、安全又跑得快的30個要訣(英文版)》從《C++核心準則》(C++ Core Guideline)數百個條目中精心挑選了30條準則進行細緻、深入的講解。內容涵蓋C++語言最主要的方面,如類型系統、面向對象、模板和元編程、錯誤處理、程式性能、常量性等,其間又恰如其分地穿插了編碼風格、設計模式等主題。探討的過程中處處可見來自作者數十年職業生涯的經驗和示例,除了深入的洞察,行文中充滿了趣味性。
作者試圖通過這種突出重點、以點帶面的方式幫助讀者了解並學習C++核心準則,進而更深入地掌握C++這門程式語言,特別是它的“現代”形態。

圖書目錄

第1章 避重就輕不可取 21
1.1 P.2:使用ISO C++標準編寫代碼 23
1.2 F.51:有選擇時優先使用默認參數而非重載 33
1.3 C.45:不要定義僅初始化數據成員的默認構造函式,
而應使用類成員初始化 43
1.4 C.131:避免平凡的get和set函式 51
1.5 ES.10:每條語句只聲明一個名字 61
1.6 NR.2:不強求函式只用一條return語句 69
第2章 不要傷害自己 79
2.1 P.11:將凌亂的結構封裝起來,而不是使其散布於代碼中 81
2.2 I.23:儘量減少函式參數 91
2.3 I.26:使用C風格子集獲取跨編譯器的ABI 99
2.4 C.47:按成員聲明順序定義並初始化成員變數 107
2.5 CP.3:儘量減少可寫數據的顯式共享 117
2.6 T.120:只在真正需要時使用模板元編程 127
第3章 別再使用 139
3.1 I.11:切勿通過原生指針(T*)或引用(T&)轉移所有權 141
3.2 I.3:避免使用單例 149
3.3 C.90:依靠構造函式和賦值運算符,而不是memset和memcpy 159
3.4 ES.50:不要用強制轉換去除const限定符 169
3.5 E.28:避免基於全局狀態(如errno)的錯誤處理 179
3.6 SF.7:不要在頭檔案的全局作用域寫using namespace 189
第4章 正確使用新特性 199
4.1 F.21:優先選擇結構體或元組返回多個“輸出”值 201
4.2 Enum.3:優先選擇類枚舉而不是“普通”枚舉 213
4.3 ES.5:保持作用域小 221
4.4 Con.5:使用constexpr表示編譯時可以計算的值 233
4.5 T.1:使用模板提高代碼的抽象層次 245
4.6 T.10:為所有模板參數指定概念 255
第5章 默認寫出好代碼 265
5.1 P.4:理想情況下,程式應具有靜態類型安全性 267
5.2 P.10:優先選擇不可變數據而不是可變數據 279
5.3 I.30:封裝違反規則的部分 287
5.4 ES.22:確定初始值後再聲明變數 295
5.5 Per.7:為促成最佳化而設計 305
5.6 E.6:使用RAII防止泄露 313
後記 325
跋 327

作者簡介

J. 蓋伊·戴維森於1980年通過Acorn Atom 首次接觸到計算機。他青少年時期的大部分時間都是在各種家用電腦上編寫遊戲,這些電腦包括Sinclair Research ZX81和ZX Spectrum,以及Atari ST。後來他從蘇塞克斯大學獲得了數學學位,他還涉足過戲劇,在一支靈魂樂隊中彈奏過鍵盤,之後在20世紀90年代初,他決定編寫演示程式,並於1997年開始在Codemasters的倫敦辦公室工作,從此進入遊戲行業。
1999年,他加入了Creative Assembly,現在是那裡的工程實踐主管。他從事《全面戰爭》系列遊戲的工作,管理著早期的遊戲目錄,也負責在工程團隊中提升編程水準。他在IGGI諮詢委員會、BSI C++小組和ISO C++委員會中任職。他是ACCU委員會的標準官員,並在ACCU會議的編程委員會任職。他是#include <C++> discord伺服器的管理員。他擔任多個組織的行為準則負責人。他會在C++會議和各種聚會上發言,特別是活躍於將線性代數添加到標準庫的相關議題中。
在豐富的業餘時間裡,他通過Prospela和BAME in Games提供C++輔導;通過UKIE、STEMNet 及作為電子遊戲大使(Video Game Ambassador)在學校、學院和大學發表演講;練習並教授吳式太極拳 ;學習鋼琴;在布萊頓節日合唱團唱男低音部;經營當地的一個電影俱樂部;是BAFTA的投票成員;代表英格蘭和威爾斯綠黨兩次參加地方議會選舉(未獲成功);正在嘗試學習西班牙語。偶爾你會發現他在牌桌上打一個點1便士的橋牌。可能還有其他事情:他是個閒不住的人。
凱特·格雷戈里從接觸編程、結識幾位最親密的朋友到認識她的丈夫,都是1977年在滑鐵盧大學完成的,所有這些她從未想過回頭。她的專業是化學工程,這正說明你很難從一個人的專業中看出什麼。她在安大略省農村的地下室有一個小房間,裡面放著一些古老的計算機:PET、C64、手工焊接的6502系統等,她把這些作為一個更單純時代的紀念品。1986年以來,她與丈夫一起經營Gregory諮詢公司,幫助世界各地的客戶更好地完成工作。
凱特曾在五大洲都做過主題演講,偏愛發掘一些改變認知的真相,然後與人分享,此外還投入大量的時間在各種 C++活動中做志願者。其中#include <C++>是她的最愛,此社區正在改變這個行業,使其更受歡迎也更具包容性。他們的Discord伺服器是一處溫馨的場所,在這裡你可以作為初學者學習 C++,也可以參與WG21的文章創作工作以改變我們使用的語言,或者做任何介於兩者之間的事情。
她會遠離鍵盤,享受和孫輩的時光、安大略的湖泊和露營地、獨木舟的槳、林間的薄霧和世界各地機場的誘惑。她是美食家、桌遊玩家,也是一個忍不住要主動提供幫助的人,線下的她和線上一樣活躍,只是不那么引人注意。自2016年從四期黑色素瘤中倖存下來,她就不再那么在意別人的想法和期望了,而更加在意自己以後想要什麼。這樣很好。

相關詞條

熱門詞條

聯絡我們