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

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

《C++高級編程(第4版)》是2019年清華大學出版社出版的圖書,作者是[美]馬克·葛瑞格爾(Marc Gregoire)著,徐志超、曹瑜譯。

基本介紹

  • 中文名:C++高級編程(第4版) 
  • 作者:[美]馬克·葛瑞格爾(Marc Gregoire)
  • 出版時間:2019年 
  • 出版社:清華大學出版社
  • ISBN:9787302526315
  • 定價:138 元
  • 裝幀平裝
內容簡介,作者簡介,前言,

內容簡介

展現C++思考方式,以便充分利用該語言中影響深遠的功能來開發高效的解決方案。·闡釋鮮為人知的元素,披露避開常見陷阱的技巧,分享提示、技巧和方案,以幫助提高工作效率和軟體性能。·列出富有挑戰、貼近實用、具有多種用途的代碼段,可根據需要將這些代碼段移植到任何項目中。·濃墨重彩地描述C++17的新功能,如結構化綁定、嵌套的名稱空間和constexprif等。·深入討論C++17新的標準庫功能,比如string_view、optional類、並行算法和檔案系統API等。

作者簡介

Marc Gregoire 是一名軟體工程師,畢業於比利時魯文大學,擁有計算機科學章鴉協工程碩士學位。之後,他在魯文大學獲得人工智慧專業的優等碩士學位。完成學業後,他開始為軟體諮詢公司Ordina Belgium 工作。他協重乘曾在Siemens 和Nokia Siemens Networks為大型電信運營商提供有關在Solaris 上運行關鍵2G和3G軟體的諮詢服務。
這份工作要求與來自南美、美國、歐洲、中東、非洲去灑捉和亞洲的國際團隊合作。Marc 目前擔任Nikon Metrology
(www.nikonmetrology.com)的軟體架構師;Nikon Metrology 是Nikon 的分公司,是領先的精密光學儀器和3D 掃描軟體供應商。Marc 的主要技術專長是C/C++,特別是Microsoft VC++和MFC 框架。他還擅長在Windows 和Linux 平台上開發24×7 小時運行的C++程式,例如KNX/EIB 家庭自動化監控軟體。除了C/C++之外,Marc 還喜歡C#,並且會用PHP 創建網頁。
2007 年4 月,他憑藉Visual C++方面的專業技能,獲得了微軟年度MVP 稱號。Marc 還是比利時C++用戶組(www.becpp.org)的創始人,是C++ Standard Library Quick Reference(Apress)一書的作者,以及多家出版社出版的多本書籍的技術編輯,是CodeGuru 論壇上的活躍分子(id 為Marc G)。Marc還在www.nuonsoft.com/blog/上維護了一個朵影婚鴉部落格,他熱愛旅遊和烹飪。

前言

多年來,茅戰閥C++都是編寫性能卓越、功能強大的企業級面向對象程式的事實標準語言。儘管C++語言已經風靡全球,但這種語言卻非常難完全掌握。專業C++程式設計師使用一些簡單但高效的技術,這些技術並未出現在傳統教材中;即使是經驗豐富的C++程式設計師,也未必完全了解C++中某些很有用的特性。
編程書籍往往重點描述語言的語法,而不是語言在真實世界中的套用。典型的C++教材在每一章中介紹語言中的大部分知識,講解語法並列舉示例。《C++高級編程(第4版)》不遵循這種模式。《C++高級編程(第4版)》並不講解語言的大量細節並給出少量真實世界的場景,而是教你如何在真實世界中使用C++。《C++高級編程(第4版)》還會講解一些鮮為人知的讓編程更簡單的特性,以及區分編程新手和專業程式設計師的編程技術。
讀者對象
就算使用C++已經多年,也仍可能不熟悉C++的一些高級特性,或仍不具有使用這門語言的完整能力。也許你編寫過實用的C++代碼,嬸頸但還想學習更多有關C++中設計和良好編程風格的內容。也許你是C++新手,想在入門時就掌握“正確”的編程方式。《C++高級編程(第4版)》能滿足上述需求,將你的C++技能提升到專業水準。
因為《C++高級編程(第4版)》專注於從對C++具有基本或中等了解水平蛻變為一名專業C++程式設計師的過程,所以《C++高級編程(第4版)》假設你對該語言具有一定程度的認識。第1 章涵蓋C++的一些基礎知識,可以當成複習材料,但是不能替代實際的語言培訓和語言使用手冊。如果剛開始接觸C++,但有很豐富的C、Java 或C#語言經驗,那么應該能從第1 章獲得所需的大部分知識。
不管屬於哪種情況,都應該具有很好的編程基礎。應該知道循環、函式和變數。應該知道如何組織一個程式,而且應該熟悉基本技術,例項提櫻灑如遞歸。應該了解一些常見的數據結構(例如佇列)以及有用的算法(例如排序和搜尋)。不需要預先了解有關面向對象編程的知識—— 這是第5章講解的內容。
還應該熟悉開發代碼時使用的編譯器。稍後將簡要介紹Microsoft Visual C++和GCC 這兩種編譯器。要了解其他編譯器,請參閱編譯器自帶的指南。
《C++高級編程(第4版)》主要內容
閱讀《C++高級編程(第4版)》是學習C++語言的一種方法,通過閱讀《C++高級編程(第4版)》既能提升編碼質量,又能提升編程效率。《C++高級編程(第4版)》貫穿對C++17 新特性的討論。這些新的C++17 特性並不是分散在各章中,而是穿插於全書,在有必要的情況下,所有例子都已更新為使用這些新特性。
《C++高級編程(第4版)》不僅講解C++語法和語言特性,還強調編程方法論、可重用的設計模式以及良好的編程風格。《C++高級編程(第4版)》講解的方法論覆蓋整個軟體開發過程——從設計和編碼,到調試以及團隊協作。這種方法可讓你掌握C++語言及其獨有特性,還能在大型軟體開發中充分利用C++語言的強大功能。
想像一下有人學習了C++的所有語法但沒有見過一個C++例子的情形。他所了解的知識會讓他處於非常危險的境地。如果沒有示例的引導,他可能會認為所有原始碼都要放在程式的main函式中,還有可能認為所有變數都應該為全局變數—— 這些都不是良好的編程實踐。
專業的C++程式設計師除了理解語法外,還要正確理解語言的使用方式。他們知道良好設計的重要性、面向對象編程的理論以及使用現有庫的最佳方式。他們還開發了大量有用的代碼並了解可重用的思想。
通過閱讀和理解《C++高級編程(第4版)》的內容,你也能成為一名專業的C++程式設計師。你在C++方面的知識會得到擴充,將接觸到鮮為人知和常被誤解的語言特性。你還將領略面向對象設計,掌握卓越的調試技能。最重要的或許是,通過閱讀《C++高級編程(第4版)》,你的頭腦中有了大量“可重用”思想,可將這種思想貫徹到日常工作中。
有很多好的理由讓你努力成為一名專業的C++程式設計師,而非只是泛泛了解C++。了解語言的真正工作原理有助於提升代碼質量。了解不同的編程方法論和過程可讓你更好地和團隊協作。探索可重用的庫和常用的設計模式可提升日常工作效率,並幫助避免白費力氣地重複工作。所有這些學習課程都在幫助你成為更優秀的程式設計師,同時成為更有價值的雇員。
《C++高級編程(第4版)》結構
《C++高級編程(第4版)》包括5 部分。
第I 部分“專業的C++簡介”是C++基礎速成教程,能確保讀者掌握C++的基礎知識。在速成教程後,第I 部分深入討論字元串和字元串視圖的使用,因為字元串在示例中套用廣泛。第I 部分的最後一章介紹如何編寫清晰易讀的C++代碼。
第II 部分“專業的C++軟體設計”介紹C++設計方法論。你會了解到設計的重要性、面向對象方法論和代碼重用的重要性。
第III 部分“專業的C++編碼方法”從專業角度概述C++技術。你將學習在C++中管理記憶體的最佳方式,如何創建可重用的類,以及如何利用重要的語言特性,例如繼承。你還會學習這門語言的一些不同尋常之處、輸入輸出技術、錯誤處理、字元串本地化和正則表達式的使用,討論如何實現運算符重載,如何編寫模板。這一部分還講解C++標準庫,包括容器、疊代器和算法。你還會學習C++標準中的其他一些庫,例如處理時間、隨機數和檔案系統的庫。
第IV 部分“掌握C++的高級特性”講解如何最大限度地使用C++。《C++高級編程(第4版)》這一部分揭示C++中神秘的部分,並描述如何使用這些更高級的特性。你將學習如何定製和擴充標準庫以滿足自己的需求、高級模板編程的細節(包括模板元編程),以及如何通過多執行緒編程來充分利用多處理器和多核系統。
第V 部分“C++軟體工程”重點介紹如何編寫企業級質量的軟體。相關的主題如下:當今編程組織使用的工程實踐,如何編寫高效的C++代碼,軟體測試概念(如單元測試和回歸測試),C++程式的調試技術,如何在自己的代碼中融入設計技術、框架和概念性的面向對象設計模式,跨語言和跨平台代碼的解決方案,等等。
《C++高級編程(第4版)》最後是4 個附錄。附錄A 列出在C++技術面試中取得成功的指南,附錄B 是帶註解的參考文獻列表,附錄C 總結C++標準中的頭檔案,附錄D 簡要介紹UML(Unified Modeling Language,統一建模語言)。
《C++高級編程(第4版)》沒有列出C++中每個類、方法和函式的參考。Peter Van Weert 和Marc Gregoire 撰寫的C++ Standard Library Quick Reference 是C++標準庫提供的所有重要數據結構、算法和函式的濃縮版。附錄B 列出了更多參考資料。下面是兩個很好的線上參考。
www.cppreference.co m
可使用這個線上參考,也可下載其離線版本,在沒有連線到網際網路時使用。
www.cplusplus.com/reference/
《C++高級編程(第4版)》正文中提到“標準庫參考資料”時,就是指上述C++參考資料。
使用《C++高級編程(第4版)》的條件
要使用《C++高級編程(第4版)》,只需要一台帶有C++編譯器的計算機。《C++高級編程(第4版)》只關注C++中的標準部分,而沒有任何編譯器廠商相關的擴展。
《C++高級編程(第4版)》包含C++17 標準引入的新特性。在撰寫《C++高級編程(第4版)》時,有些編譯器還不能完全支持C++17 的所有新特性。
可使用任意C++編譯器。如果還沒有C++編譯器,可下載一個免費的。這有許多選擇。例如,對於Windows,可下載Microsoft Visual Studio 2017 Community Edition,這個版本免費且包含Visual C++;對於Linux,可使用GCC 或Clang,它們也是免費的。
下面將簡要介紹如何使用Visual C++和GCC。可參閱相關的編譯器文檔來了解更多信息。
Microsoft Visual C++
首先需要創建一個項目。啟動VC++,單擊File | New | Project,在左邊的項目模板樹中選擇Visual C++ |Win32,再在視窗中間的列表中選擇Win32 Console Application(或Windows Console Application)模板。在底部指定項目的名稱、保存位置,單擊OK。
這會打開一個嚮導,單擊Next 按鈕,選擇Console Application 和Empty Project,再單擊Finish 按鈕。注意,你可能看不到嚮導,具體取決於使用的VC++ 2017 版本。相反,將自動創建一個新的項目,其中包含4 個檔案:stdafx.h、stdafx.cpp、targetver.h 和<projectname>.cpp。如果遇到這種情況,而你想要編譯原始碼檔案(取自從配套網站下載的《C++高級編程(第4版)》原始碼壓縮檔案),則必須在Solution Explorer(選擇View | Solution Explorer)中選擇這些檔案,然後刪除它們。
載入新項目後,就會在Solution Explorer 中看到項目檔案列表。如果這個停靠視窗不可見,可選擇View |Solution Explorer。在Solution Explorer 中右擊項目名,再選擇Add | New Item 或Add | Existing Item,就可以給項目添加新檔案或已有檔案。
使用Build | Build Solution 編譯代碼。沒有編譯錯誤後,就可以使用Debug | Start Debugging 運行了。
如果程式在查看輸出之前就退出了,可使用Debug | Start without Debugging。這會在程式末尾暫停,以便查看輸出。
在撰寫《C++高級編程(第4版)》期間,Visual C++ 2017 尚未自動啟用C++17 功能。要啟用C++17 功能,可在Solution Explorer視窗中右擊項目,然後單擊Properties。在Properties 視窗中,選擇Configuration Properties | C/C++ | Language,根據使用的Visual C++版本,將C++ Language Standard 選項設定為ISO C++17 Standard 或ISO C++ Latest Draft Standard。僅當項目至少包含一個.cpp 檔案時,才能訪問這些選項。
Visual C++支持“預編譯的頭檔案”,這個話題超出了《C++高級編程(第4版)》的討論範圍。通常而言,如果編譯器支持的話,建議使用預編譯的頭檔案。但是,從《C++高級編程(第4版)》網站下載的原始碼檔案不使用預編譯的頭檔案,因此,只有禁用這項功能才能使這些代碼正確編譯。在Solution Explorer 視窗中右擊項目,選擇Properties。在Properties 視窗中,找到Configuration Properties | C/C++ | Precompiled Headers,將Precompiled Header 選項設定為Not Using Precompiled Headers。
GCC
用自己喜歡的任意文本編輯器創建原始碼,保存到一個目錄下。要編譯代碼,可打開一個終端,運行如下命令,指定要編譯的所有.cpp 檔案:
gcc -lstdc++ -std=c++17 -o <executable_name> <source1.cpp> [source2.cpp ... ]
-std=c++17 用於告訴GCC 啟用C++17 支持。
例如,可切換到包含代碼的目錄,運行如下命令來編譯第1 章的AirlineTicket 示例:
g cc –lstdc++ -std=c++17 -o AirlineTicket AirlineTicket.cpp AirlineTicketTest.cpp
沒有編譯錯誤後,就可以使用如下命令運行了:
. /AirlineTicket
勘誤表
儘管我們已經盡了各種努力來保證文章或代碼中不出現錯誤,但錯誤總是難免的。如果在《C++高級編程(第4版)》中找到錯誤,例如拼寫錯誤或代碼錯誤,請告訴我們,我們將非常感激。通過勘誤表,可以讓其他讀者避免受挫,當然,這還有助於提供更高質量的信息。
請給[email protected] 發電子郵件,我們就會檢查你提供的信息,如果是正確的,我們將在《C++高級編程(第4版)》的後續版本中採用。
要在網站上找到《C++高級編程(第4版)》的勘誤表,可登錄http://www.wrox.com,通過Search 工具或書名列表查找《C++高級編程(第4版)》,然後在《C++高級編程(第4版)》的細目頁面上,單擊Book Errata 連結。在這個頁面上可查看Wrox 編輯已提交和貼上的所有勘誤項。完整的圖書列表還包括每《C++高級編程(第4版)》的勘誤表,網址是www.wrox.com/misc-pages/booklist.shtml。
原始碼
讀者在學習《C++高級編程(第4版)》中的示例時,可以手動輸入所有代碼,也可使用《C++高級編程(第4版)》附帶的原始碼檔案。《C++高級編程(第4版)》使用的所有原始碼都可以從《C++高級編程(第4版)》合作站點www.wiley.com/go/proc++4e 下載。
另外,也可進入http://www.wrox.com/dynamic/books/download.aspx 上的Wrox 代碼下載主頁,查看《C++高級編程(第4版)》和其他Wrox 圖書的所有代碼。
還可通過掃描《C++高級編程(第4版)》封底的二維碼來下載原始碼。
提示:
由於許多圖書的書名都十分類似,因此按ISBN 搜尋是最簡單的,《C++高級編程(第4版)》英文版的ISBN 是978-1-119-42130-6。
下載代碼後,只需要用自己喜歡的解壓縮軟體進行解壓縮即可。
讀者對象
就算使用C++已經多年,也仍可能不熟悉C++的一些高級特性,或仍不具有使用這門語言的完整能力。也許你編寫過實用的C++代碼,但還想學習更多有關C++中設計和良好編程風格的內容。也許你是C++新手,想在入門時就掌握“正確”的編程方式。《C++高級編程(第4版)》能滿足上述需求,將你的C++技能提升到專業水準。
因為《C++高級編程(第4版)》專注於從對C++具有基本或中等了解水平蛻變為一名專業C++程式設計師的過程,所以《C++高級編程(第4版)》假設你對該語言具有一定程度的認識。第1 章涵蓋C++的一些基礎知識,可以當成複習材料,但是不能替代實際的語言培訓和語言使用手冊。如果剛開始接觸C++,但有很豐富的C、Java 或C#語言經驗,那么應該能從第1 章獲得所需的大部分知識。
不管屬於哪種情況,都應該具有很好的編程基礎。應該知道循環、函式和變數。應該知道如何組織一個程式,而且應該熟悉基本技術,例如遞歸。應該了解一些常見的數據結構(例如佇列)以及有用的算法(例如排序和搜尋)。不需要預先了解有關面向對象編程的知識—— 這是第5章講解的內容。
還應該熟悉開發代碼時使用的編譯器。稍後將簡要介紹Microsoft Visual C++和GCC 這兩種編譯器。要了解其他編譯器,請參閱編譯器自帶的指南。
《C++高級編程(第4版)》主要內容
閱讀《C++高級編程(第4版)》是學習C++語言的一種方法,通過閱讀《C++高級編程(第4版)》既能提升編碼質量,又能提升編程效率。《C++高級編程(第4版)》貫穿對C++17 新特性的討論。這些新的C++17 特性並不是分散在各章中,而是穿插於全書,在有必要的情況下,所有例子都已更新為使用這些新特性。
《C++高級編程(第4版)》不僅講解C++語法和語言特性,還強調編程方法論、可重用的設計模式以及良好的編程風格。《C++高級編程(第4版)》講解的方法論覆蓋整個軟體開發過程——從設計和編碼,到調試以及團隊協作。這種方法可讓你掌握C++語言及其獨有特性,還能在大型軟體開發中充分利用C++語言的強大功能。
想像一下有人學習了C++的所有語法但沒有見過一個C++例子的情形。他所了解的知識會讓他處於非常危險的境地。如果沒有示例的引導,他可能會認為所有原始碼都要放在程式的main函式中,還有可能認為所有變數都應該為全局變數—— 這些都不是良好的編程實踐。
專業的C++程式設計師除了理解語法外,還要正確理解語言的使用方式。他們知道良好設計的重要性、面向對象編程的理論以及使用現有庫的最佳方式。他們還開發了大量有用的代碼並了解可重用的思想。
通過閱讀和理解《C++高級編程(第4版)》的內容,你也能成為一名專業的C++程式設計師。你在C++方面的知識會得到擴充,將接觸到鮮為人知和常被誤解的語言特性。你還將領略面向對象設計,掌握卓越的調試技能。最重要的或許是,通過閱讀《C++高級編程(第4版)》,你的頭腦中有了大量“可重用”思想,可將這種思想貫徹到日常工作中。
有很多好的理由讓你努力成為一名專業的C++程式設計師,而非只是泛泛了解C++。了解語言的真正工作原理有助於提升代碼質量。了解不同的編程方法論和過程可讓你更好地和團隊協作。探索可重用的庫和常用的設計模式可提升日常工作效率,並幫助避免白費力氣地重複工作。所有這些學習課程都在幫助你成為更優秀的程式設計師,同時成為更有價值的雇員。
《C++高級編程(第4版)》結構
《C++高級編程(第4版)》包括5 部分。
第I 部分“專業的C++簡介”是C++基礎速成教程,能確保讀者掌握C++的基礎知識。在速成教程後,第I 部分深入討論字元串和字元串視圖的使用,因為字元串在示例中套用廣泛。第I 部分的最後一章介紹如何編寫清晰易讀的C++代碼。
第II 部分“專業的C++軟體設計”介紹C++設計方法論。你會了解到設計的重要性、面向對象方法論和代碼重用的重要性。
第III 部分“專業的C++編碼方法”從專業角度概述C++技術。你將學習在C++中管理記憶體的最佳方式,如何創建可重用的類,以及如何利用重要的語言特性,例如繼承。你還會學習這門語言的一些不同尋常之處、輸入輸出技術、錯誤處理、字元串本地化和正則表達式的使用,討論如何實現運算符重載,如何編寫模板。這一部分還講解C++標準庫,包括容器、疊代器和算法。你還會學習C++標準中的其他一些庫,例如處理時間、隨機數和檔案系統的庫。
第IV 部分“掌握C++的高級特性”講解如何最大限度地使用C++。《C++高級編程(第4版)》這一部分揭示C++中神秘的部分,並描述如何使用這些更高級的特性。你將學習如何定製和擴充標準庫以滿足自己的需求、高級模板編程的細節(包括模板元編程),以及如何通過多執行緒編程來充分利用多處理器和多核系統。
第V 部分“C++軟體工程”重點介紹如何編寫企業級質量的軟體。相關的主題如下:當今編程組織使用的工程實踐,如何編寫高效的C++代碼,軟體測試概念(如單元測試和回歸測試),C++程式的調試技術,如何在自己的代碼中融入設計技術、框架和概念性的面向對象設計模式,跨語言和跨平台代碼的解決方案,等等。
《C++高級編程(第4版)》最後是4 個附錄。附錄A 列出在C++技術面試中取得成功的指南,附錄B 是帶註解的參考文獻列表,附錄C 總結C++標準中的頭檔案,附錄D 簡要介紹UML(Unified Modeling Language,統一建模語言)。
《C++高級編程(第4版)》沒有列出C++中每個類、方法和函式的參考。Peter Van Weert 和Marc Gregoire 撰寫的C++ Standard Library Quick Reference 是C++標準庫提供的所有重要數據結構、算法和函式的濃縮版。附錄B 列出了更多參考資料。下面是兩個很好的線上參考。
www.cppreference.co m
可使用這個線上參考,也可下載其離線版本,在沒有連線到網際網路時使用。
www.cplusplus.com/reference/
《C++高級編程(第4版)》正文中提到“標準庫參考資料”時,就是指上述C++參考資料。
使用《C++高級編程(第4版)》的條件
要使用《C++高級編程(第4版)》,只需要一台帶有C++編譯器的計算機。《C++高級編程(第4版)》只關注C++中的標準部分,而沒有任何編譯器廠商相關的擴展。
《C++高級編程(第4版)》包含C++17 標準引入的新特性。在撰寫《C++高級編程(第4版)》時,有些編譯器還不能完全支持C++17 的所有新特性。
可使用任意C++編譯器。如果還沒有C++編譯器,可下載一個免費的。這有許多選擇。例如,對於Windows,可下載Microsoft Visual Studio 2017 Community Edition,這個版本免費且包含Visual C++;對於Linux,可使用GCC 或Clang,它們也是免費的。
下面將簡要介紹如何使用Visual C++和GCC。可參閱相關的編譯器文檔來了解更多信息。
Microsoft Visual C++
首先需要創建一個項目。啟動VC++,單擊File | New | Project,在左邊的項目模板樹中選擇Visual C++ |Win32,再在視窗中間的列表中選擇Win32 Console Application(或Windows Console Application)模板。在底部指定項目的名稱、保存位置,單擊OK。
這會打開一個嚮導,單擊Next 按鈕,選擇Console Application 和Empty Project,再單擊Finish 按鈕。注意,你可能看不到嚮導,具體取決於使用的VC++ 2017 版本。相反,將自動創建一個新的項目,其中包含4 個檔案:stdafx.h、stdafx.cpp、targetver.h 和<projectname>.cpp。如果遇到這種情況,而你想要編譯原始碼檔案(取自從配套網站下載的《C++高級編程(第4版)》原始碼壓縮檔案),則必須在Solution Explorer(選擇View | Solution Explorer)中選擇這些檔案,然後刪除它們。
載入新項目後,就會在Solution Explorer 中看到項目檔案列表。如果這個停靠視窗不可見,可選擇View |Solution Explorer。在Solution Explorer 中右擊項目名,再選擇Add | New Item 或Add | Existing Item,就可以給項目添加新檔案或已有檔案。
使用Build | Build Solution 編譯代碼。沒有編譯錯誤後,就可以使用Debug | Start Debugging 運行了。
如果程式在查看輸出之前就退出了,可使用Debug | Start without Debugging。這會在程式末尾暫停,以便查看輸出。
在撰寫《C++高級編程(第4版)》期間,Visual C++ 2017 尚未自動啟用C++17 功能。要啟用C++17 功能,可在Solution Explorer視窗中右擊項目,然後單擊Properties。在Properties 視窗中,選擇Configuration Properties | C/C++ | Language,根據使用的Visual C++版本,將C++ Language Standard 選項設定為ISO C++17 Standard 或ISO C++ Latest Draft Standard。僅當項目至少包含一個.cpp 檔案時,才能訪問這些選項。
Visual C++支持“預編譯的頭檔案”,這個話題超出了《C++高級編程(第4版)》的討論範圍。通常而言,如果編譯器支持的話,建議使用預編譯的頭檔案。但是,從《C++高級編程(第4版)》網站下載的原始碼檔案不使用預編譯的頭檔案,因此,只有禁用這項功能才能使這些代碼正確編譯。在Solution Explorer 視窗中右擊項目,選擇Properties。在Properties 視窗中,找到Configuration Properties | C/C++ | Precompiled Headers,將Precompiled Header 選項設定為Not Using Precompiled Headers。
GCC
用自己喜歡的任意文本編輯器創建原始碼,保存到一個目錄下。要編譯代碼,可打開一個終端,運行如下命令,指定要編譯的所有.cpp 檔案:
gcc -lstdc++ -std=c++17 -o <executable_name> <source1.cpp> [source2.cpp ... ]
-std=c++17 用於告訴GCC 啟用C++17 支持。
例如,可切換到包含代碼的目錄,運行如下命令來編譯第1 章的AirlineTicket 示例:
g cc –lstdc++ -std=c++17 -o AirlineTicket AirlineTicket.cpp AirlineTicketTest.cpp
沒有編譯錯誤後,就可以使用如下命令運行了:
. /AirlineTicket
勘誤表
儘管我們已經盡了各種努力來保證文章或代碼中不出現錯誤,但錯誤總是難免的。如果在《C++高級編程(第4版)》中找到錯誤,例如拼寫錯誤或代碼錯誤,請告訴我們,我們將非常感激。通過勘誤表,可以讓其他讀者避免受挫,當然,這還有助於提供更高質量的信息。
請給[email protected] 發電子郵件,我們就會檢查你提供的信息,如果是正確的,我們將在《C++高級編程(第4版)》的後續版本中採用。
要在網站上找到《C++高級編程(第4版)》的勘誤表,可登錄http://www.wrox.com,通過Search 工具或書名列表查找《C++高級編程(第4版)》,然後在《C++高級編程(第4版)》的細目頁面上,單擊Book Errata 連結。在這個頁面上可查看Wrox 編輯已提交和貼上的所有勘誤項。完整的圖書列表還包括每《C++高級編程(第4版)》的勘誤表,網址是www.wrox.com/misc-pages/booklist.shtml。
原始碼
讀者在學習《C++高級編程(第4版)》中的示例時,可以手動輸入所有代碼,也可使用《C++高級編程(第4版)》附帶的原始碼檔案。《C++高級編程(第4版)》使用的所有原始碼都可以從《C++高級編程(第4版)》合作站點www.wiley.com/go/proc++4e 下載。
另外,也可進入http://www.wrox.com/dynamic/books/download.aspx 上的Wrox 代碼下載主頁,查看《C++高級編程(第4版)》和其他Wrox 圖書的所有代碼。
還可通過掃描《C++高級編程(第4版)》封底的二維碼來下載原始碼。
提示:
由於許多圖書的書名都十分類似,因此按ISBN 搜尋是最簡單的,《C++高級編程(第4版)》英文版的ISBN 是978-1-119-42130-6。
下載代碼後,只需要用自己喜歡的解壓縮軟體進行解壓縮即可。

相關詞條

熱門詞條

聯絡我們