C++ Primer中文版(第5版)(頂級暢銷書重磅升級全面採用最新 C++ 11標準)ios
【美】Stanley B. Lippman( 斯坦利李普曼) Josee Lajoie(約瑟拉喬伊 ) Barbara E. Moo (芭芭拉默) 著程序員
王剛 楊巨峯譯正則表達式
ISBN 978-7-121-15535-2算法
2013年9月出版編程
訂價:128.00元數組
864頁安全
16開
數據結構
編輯推薦 多線程
C++領域權威 潘愛民|孟巖做序,表明技術圈鼎力推薦 架構
一線C++工程師騰訊Milo、微軟劉未鵬|陳梓瀚、阿里李雲|侯鳳林高水準技術審校
若是隻讀一本C++書籍,相信全部讀過的人都會絕不猶豫選擇本書,不管初學或老手
既可用來理解C++11規則背後的原理,也可用其新語言特性與標準庫來快速構建健壯程序
採用中文版頁碼全面呈現原書大量交叉引用及詳盡索引,新式輔學設置與課後操練用於避開陷阱、鞏固良法
內容提要
這本久負盛名的 C++經典教程,時隔八年之久,終迎來前所未有的重大升級。除令全球無數程序員從中受益,甚至爲之迷醉的——C++ 大師 Stanley B. Lippman 的豐富實踐經驗,C++標準委員會原負責人 Josée Lajoie 對C++標準的深刻理解,以及C++ 先驅 Barbara E. Moo 在 C++教學方面的真知灼見外,更是基於全新的 C++11標準進行了全面而完全的內容更新。很是難能難得的是,《C++ Primer 中文版(第5版)》全部示例均所有采用 C++11 標準改寫,這在經典升級版中極其罕見——充分體現了 C++ 語言的重大進展及其全面實踐。書中豐富的教學輔助內容、醒目的知識點提示,以及精心組織的編程示範,讓這本書在 C++ 領域的權威地位更加不可動搖。不管是初學者入門,或是中、高級程序員提高,本書均爲無可置疑的首選。
目錄
第1章 開始 1
第2章 變量和基本類型 29
第3章 字符串、向量和數組 73
第4章 表達式 119
第5章 語句 153
第6章 函數 181
第7章 類 227
第8章 IO庫 277
第9章 順序容器 291
第10章 泛型算法 335
第11章 關聯容器 373
第12章 動態內存 399
第13章 拷貝控制 439
第14章 操做重載與類型轉換 489
第15章 面向對象程序設計 525
第16章 模板與泛型編程 577
第17章 標準庫特殊設施 635
第18章 用於大型程序的工具 683
第19章 特殊工具與技術 725
C++11的新特性
2.1.1 long long類型 31
2.2.1 列表初始化 39
2.3.2 nullptr常量 48
2.4.4 constexpr變量 59
2.5.1 類型別名聲明 60
2.5.2 auto類型指示符 61
2.5.3 decltype類型指示符62
2.6.1 類內初始化 65
3.2.2 使用auto或decltype縮寫類型 79
3.2.3 範圍for語句 82
3.3 定義vector對象的vector(向量的向量) 87
3.3.1 vector對象的列表初始化88
3.4.1 容器的cbegin和cend函數 98
3.5.3 標準庫begin和end函數 106
3.6 使用auto和decltype簡化聲明 115
4.2 除法的舍入規則125
4.4 用大括號包圍的值列表賦值 129
4.9 將sizeof用於類成員 139
5.4.3 範圍for語句 168
6.2.6 標準庫initializer_list類 197
6.3.2 列表初始化返回值 203
6.3.3 定義尾置返回類型 206
6.3.3 使用decltype簡化返回類型定義
6.5.2 constexpr函數 214
7.1.4 使用=default生成默認構造函數 237
7.3.1 類對象成員的類內初始化 246
7.5.2 委託構造函數 261
7.5.6 constexpr構造函數 268
8.2.1 用string對象處理文件名284
9.1 array和forward_list容器 293
9.2.3 容器的cbegin和cend函數 298
9.2.4 容器的列表初始化 300
9.2.5 容器的非成員函數swap 303
9.3.1 容器insert成員的返回類型 308
9.3.1 容器的emplace成員的返回類型 308
9.4 shrink_to_fit 318
9.5.5 string的數值轉換函數 327
10.3.2 Lambda表達式 346
10.3.3 Lambda表達式中的尾置返回類型 353
10.3.4 標準庫bind函數 354
11.2.1 關聯容器的列表初始化 377
11.2.3 列表初始化pair的返回類型 380
11.3.2 pair的列表初始化 384
11.4 無序容器 394
12.1 智能指針 400
12.1.1 shared_ptr類
12.1.2 動態分配對象的列表初始化 407
12.1.2 auto和動態分配 408
12.1.5 unique_ptr類 417
12.1.6 weak_ptr類 420
12.2.1 範圍for語句不能應用於動態分配數組 424
12.2.1 動態分配數組的列表初始化 424
12.2.1 auto不能用於分配數組 424
12.2.2 allocator::construct可以使用任意構造函數 428
13.1.5 將=default用於拷貝控制成員 449
13.1.6 使用=default阻止拷貝類對象 449
13.5 用移動類對象代替拷貝類對象 469
13.6.1 右值引用 471
13.6.1 標準庫move函數 472
13.6.2 移動構造函數和移動賦值 473
13.6.2 移動構造函數一般應該是noexcept 473
13.6.2 移動迭代器 480
13.6.3 引用限定成員函數 483
14.8.3 function類模板 512
14.9.1 explicit類型轉換運算符 516
15.2.2 虛函數的override指示符 530
15.2.2 經過定義類爲final來阻止繼承 533
15.3 虛函數的override和final指示符 538
15.7.2 刪除的拷貝控制和繼承 553
15.7.4 繼承的構造函數 557
16.1.2 聲明模板類型形參爲友元 590
16.1.2 模板類型別名 590
16.1.3 模板函數的默認模板參數 594
16.1.5 實例化的顯式控制 597
16.2.3 模板函數與尾置返回類型 605
16.2.5 引用摺疊規則 609
16.2.6 用static_cast將左值轉換爲右值 612
16.2.7 標準庫forward函數 614
16.4 可變參數模板 618
16.4 sizeof...運算符 619
16.4.3 可變參數模板與轉發 622
17.1 標準庫Tuple類模板636
17.2.2 新的bitset運算 643
17.3 正則表達式庫 645
17.4 隨機數庫 659
17.5.1 浮點數格式控制 670
18.1.4 noexcept異常指示符 690
18.1.4 noexcept運算符 691
18.2.1 內聯名字空間 699
18.3.1 繼承的構造函數和多重繼承 712
19.3 有做用域的enum 736
19.3 說明類型用於保存enum對象 738
19.3 enum的提早聲明 738
19.4.3 標準庫mem_fn類模板 746
19.6 類類型的聯合成員 751
精彩節摘
推薦序
C++11標準公佈以後,C++社羣出現了久違的熱情,有人甚至叫出「C++的復興」。期望C++回到20世紀90年代中期那樣的地位顯然是昧於大勢的奢望,可是C++經歷了這麼多年的打磨與起伏,其在工業界的地位已經很是穩固,在不少領域裏已是不可取代也不必被取代的統治者。新標準的出現可以大大提高C++開發的效率和質量,所以贏得歡呼也是情理之中。在這種氛圍之下,編譯器實現的速度也使人驚喜。短短兩年時間,從開源的GCC、LLVM到專有的Visual C++和Intel C++,對於新標準的追蹤之快,覆蓋之全,與當年C++ 98標準頒佈以後遲遲不能落地的窘境相比,可謂對比強烈。當年是熱情的開發者反覆敦促廠商實現完整標準而不得,爲此沮喪無奈,那種心情,至今記憶猶新。時過境遷,今天是編譯器實現遠遠衝在前面,開發者卻是大大地落在了後面。
時至今日,可以基本瞭解C++11標準的程序員恐怕很少,而可以以新的C++風格開發實踐的人更是百裏挑一。所以,今天的C++開發者面臨的一個重要任務就是快速掌握新的C++風格和工具。
而說到教授「正宗的」C++11編程風格,《C++ Primer(第5版)》如同它以前的版本同樣,扮演着法定教科書的角色。
一種優秀的編程語言,必定要對於計算這件事情實現一個完整和自洽的抽象。十幾年來編程語言領域的競爭,除卻實現質量以外,基本上是在比拼抽象的設計。而C語言之因此四十年長盛不衰,根本在於它對於現代計算機提供了一個最底層的高級抽象:凡是比它低的抽象都過於簡陋,凡是比它高的抽象均可以用C語言構造出來。C++成功的根本緣由,偏偏是由於它雖然試圖提供一些高級的抽象機制,可是其根基與C在同一層面。正由於如此,每當你須要走下去直接與硬件對話時,C++成爲C以外惟一有效率的選擇。個人一個朋友在進行了多年的大型系統軟件開發以後,不無感慨地說,C++最大的力量不在於其抽象,偏偏在於其不抽象。
話雖然如此,可是C++之因此脫離C而存在,畢竟仍是由於其強大的抽象能力。Bjarne Stroustrup曾經總結說,C++同時支持4種不一樣的編程風格:C風格、基於對象、面向對象和泛型。事實上,把微軟的COM也算進來的話,還能夠加上一種「基於組件」的風格。這麼多的風格共存於一種語言,就是其強大抽象機制的證實。可是,在C++11之前,C++的抽象能夠說存在若干缺陷,其中最嚴重的是缺乏自動內存管理和對象級別的消息發送機制。今天看來,C++ 98只能說是特定歷史條件形成的半成品,不管是從語言機制,仍是標準庫完備程度來講,能夠說都存在明顯的、不容忽略的缺陷。其直接後果,就是優雅性的缺失和效率的下降。我本人在十年前曾經與當時中國C++社羣中很多傑出的人物交流探討,試圖從C++ 98中剪裁出一個小巧、優雅的、自成一體的子集,但願至少在平常編程中,可以在這個子集以內能夠寫出與當時的Java和C#一樣乾淨明晰的代碼。爲此咱們嘗試了各類古怪的模板技巧,而且處處尋找有啓發的代碼和經驗來構造這個語言子集,結果並不理想,甚至能夠說是使人很是失望。後來我在個人博客中發表過好幾篇文章,探討所謂的C++風格問題,其實就是說,C++不支持簡潔明快的面向對象風格,你們還不如回到基於對象甚至C語言的風格,最多加點模板,省一點代碼量。非要面向對象的話,就必須依賴像Qt或者MFC那樣的基礎設施才能夠。
C++11出來以後,加強的語言機制和大爲完善的標準庫,爲C++語言的編程風格帶來了革命性的變化。若是可以純熟地運用C++11的新特徵、新機制,那麼就可以造成一種簡潔優雅的C++編 程風格,以比從前更高的效率、更好的質量進行軟件開發。對於這種新的風格,我認爲「直覺、天然」是最佳的描述。也就是說,解決任何問題沒必要拘泥於什麼籠蓋 一切的編程思想,也再也不沉溺於各類古怪的模板技巧中沒法自拔,而是可以根據那個問題自己採用最天然、最符合直覺的方式。C++有本身的一套思惟方式,好比容器、算法、做爲概念抽象的對象等,很大程度上這套思惟方式確實是合乎直覺的。只有到了C++11這一代,C++語言的高級抽象才基本完備,這樣一種風格纔可能真正落實。所以能夠說C++11對於C++ 98而言,不是一次簡單的升級,而是一次本質的躍升。
學習新的C++風格,並非垂手可得的事情。即使對於之前已經精通C++的人來講,熟練掌握rvalue reference、move語義,瞭解unique_ptr、shared_ptr和weak_ptr的完整用法,明智地使用function/bind和lambda機制,學習C++ Concurrency的新技術,都絕非一朝一夕之功。對於那些初學者來講,這件事情更不簡單。
本書不管對於初學者仍是提升者,都是最經典的教科全書。一直以來,它的特色就是完整而詳細,基本上關於語言自己的問題,均可以在這本書裏獲得解決。而本書的另外一個重要優勢,就是其徹底基於新的編程風格編寫,全部的例子和講解都遵循C++11標準所體現出來的思路和風格進行,若是可以踏下心來認真學習和練習,那麼就能「一次到位」地掌握C++11,儘管可能會比較慢。有經驗的C++開發者閱讀這本書固然不用從頭至尾,選擇本身關心的內容學習C++11的新特性就能夠,是快速升級自身能力的捷徑。
差很少十年前,我提出一個觀點,每個具體的技術領域,只須要讀四五本書就夠了。之前的C++是個例外,由於語言設計有缺陷,因此要讀不少書才知道如何繞過缺陷。如今的C++11徹底能夠了,你們讀四五本書就能夠達到合格的水平,這偏偏是語言進步的體現。
本書是這四五本中的一本,並且是「教程+參考書」,扛梁之做,初學者的不二法門。另外一本是《C++標準程序庫(第2版)》,對於C++熟手來講更爲快捷。Scott Meyers的Effective C++永遠是學習C++者必讀的,只不過這本書的第4版不知道何時出來。Anthony Williams的C++ Concurrency in Action是學習用標準C++開發併發程序的最佳選擇。國內的做品,我則高度推薦陳碩的《Linux多線程服務端編程》。這本書的名字趕跑了很多潛在的讀者,因此我要特別說明一下。這本書是C++開發的高水平做品,與其說是教你怎麼用C++寫服務端開發,不如說是教你如何以服務端開發爲例子提高C++開發水平。前面幾本書都是談標準C++本身的事情,碰到像iostream這樣失敗的標準組件也不得不硬着頭皮介紹。而這本書是接地氣的實踐結晶,告訴你面對具體問題時應怎樣權衡,C++裏什麼好用,什麼很差用,爲何,等等。
今天的C++學習者是很是幸運的,能夠在C++11這個基礎上大步向前,沒必要再由於那些語言的缺陷和過分的技巧而煩惱。你們靜下心來認真讀幾本書,能夠打下很好的基礎。
孟巖
2013年8月 北京
做者簡介
Stanley B. Lippman目前是微軟公司 Visual C++ 團隊的架構師。他從1984年開始在貝爾實驗室與C++的設計者Bjarne Stroustrup一塊兒從事C++的設計與開發。他在迪士尼和夢工廠從事動畫製做,還擔任過JPL的高級顧問。
Josée Lajoie曾經是IBM加拿大研究中心C/C++編譯器開發團隊的成員,在ISO C++標準委員會工做了7年,擔任過ISO核心語言工做組的主席和C++ Report雜誌的專欄做家。
Barbara E. Moo是擁有25年軟件經驗的獨立諮詢顧問。在AT&T,她與Stroustrup、Lippman一塊兒管理過複雜的C++開發項目。
媒體評論
這本CP5徹底能夠當作參考書或者字典來用,在語法上遇到什麼問題或者編譯有問題均可以再這本書裏找答案,CP4是很是權威的,畢竟Lippman大大是第一個C++編譯器的實現者之一。
這本書的寫做方式實在適合國人。他沒有中國做家廣泛的「講概念」式的寫做手法,而是從因到果,由淺入深,由表及裏娓娓道來,從語言的簡單用法,到爲何這樣設計語言,你不只能從一個語言使用者的角度看問題,更能站在一個語言設計者的角度思考這種語言的設計優劣。
這是本很是經典的C++書籍,系統全面地介紹了C++語言。本書近一千頁,能夠當作是學習C++的百科全書。市面上沒有哪本其餘書籍比本書論述得更普遍,幾乎全部的C++知識點本書都有論述並且寫得還不錯。由於這點,這本書值得每一位C++程序員擁有。
針對C++11而新添加到書中的內容恰到好處地定義了這個新版本。做者在新版本中給出了清晰的闡述,如自動類型、decltype、列表初始化器、右值引用、move操做符、lambda表達式、智能指針等。僅針對C++11的延展,正是這本書的價值所在。
C++是一門強大、難學、使人痛苦,但又是如此美妙的編程語言,在工業界和學術界均可以使用,《C++ Primer(第5版)》即針對初學者,也一樣適用於有必定編程經驗的讀者,最新版本配備了C++11最新標準,是C++粉絲們書架上必備的一本經典著做。
前言
難以計數的程序員已經經過舊版的《C++ Primer》學會了C++語言。而在這段時間中,C++自己又已成熟了許多:語言自己的關注點和程序設計社區的關注點都已大大開闊,已經從主要關注機器效率轉變爲更多地關注編程效率。
2011年,C++標準委員會發布了ISO C++標準的一個重要修訂版。此修訂版是C++進化過程當中的最新一步,延續了前幾個版本對編程效率的強調。新標準的主要目標是:
所以,在這個版本的《C++ Primer》中,咱們進行了完全的修改,使用了最新的C++標準,即C++11。爲了瞭解新標準是如何全面影響C++語言的,你能夠看一下xxiii頁至xxv頁的新特性列表,其中列出了哪些章節涉及了C++的新特性。
新標準增長的一些特性是具備普適性的,例如用於類型推斷的auto。 這些新特性使本書中的代碼更易於閱讀和理解。程序(以及程序員!)能夠忽略類型的細節,從而更容易集中精力於程序邏輯上來。其餘一些新特性,例如智能指針 和容許移動的容器,容許咱們編寫更爲複雜的類,而又沒必要與錯綜複雜的資源管理作鬥爭。所以,在本書中開始講授如何編寫本身的類,會比第4版簡單得多。舊標準中阻擋在咱們前進路上的不少細節,你我都沒必要再擔憂了。
對於本書中涉及新標準定義的新特性的那些部分,咱們都已用一個特殊的圖標標記出來了。咱們但願這些提示標記對那些已經熟悉C++語言核心內容的讀者是有幫助的,能夠幫助他們決定將注意力投向哪裏。對於那些可能尚不支持全部新特性的編譯器,咱們還但願這些圖標能有助於解釋這類編譯器所給出的編譯錯誤信息。這是由於雖然本書中幾乎全部例子都已經用最新版本的GNU編譯器編譯經過,但咱們知道一些讀者可能還沒有將編譯器更新到最新版本。雖然新標準增長了大量新功能,但核心C++語言並未變化,這構成了本書的大部份內容。讀者能夠藉助這些圖標來判斷哪些功能可能尚未被本身的編譯器所支持。
爲何選擇這本書?
現代C++語言能夠看做是三部分組成的:
大多數C++教材按照語言進化的順序來組織其內容。首先講授C++的C子集,而後將C++的更爲抽象的一些特性做爲高級話題在書的最後進行介紹。這種方式存在兩個問題:讀者會陷入那些繼承自低級程序設計的細節,從而因爲挫折感而放棄;讀者被強加學習一些壞習慣,隨後又須要忘記這些內容。
咱們採用一種相反的方法:從一開始就介紹一些語言特性,能讓程序員忽略那些繼承自低級程序設計的細節。例如,在介紹和使用內置的算術和數組類型時,咱們還連同介紹和使用標準庫中的類型string和vector。使用這些類型的程序更易寫、易理解且更少出錯。
太多時候,標準庫被看成一種「高級」話題來說授。不少教材不使用標準庫,而是使用基於字符數組指針和動態內存管理的低級程序設計技術。讓使用這種低級技術的程序正確運行,要比編寫相應的使用標準庫的C++代碼困可貴多。
貫穿全書,咱們都在強調好的風格:咱們想幫助讀者直接養成好的習慣,而不是在得到不少很複雜的知識後再去忘掉那些壞習慣。咱們特別強調那些棘手的問題,並對常見的錯誤想法和陷阱提出警告。
咱們還注意解釋規則背後的基本原理——使讀者不只知其然,還能知其因此然。咱們相信,經過體會程序的工做原理,讀者會更快地鞏固對語言的理解。
雖然你沒必要爲了學習本書而掌握C語言,但咱們仍是假定你瞭解足夠多的程序設計知識,瞭解至少一門現代分程序結構語言,知道如何用這門語言編寫、編譯以及運行程序。特別是,咱們假定你已經使用過變量,編寫、調用過函數,也使用過編譯器。
第5版變化的內容
這一版《C++ Primer》的新特色是用邊欄圖標來幫助引導讀者。C++是 一種龐大的編程語言,它提供了一些爲特定程序設計問題定製的功能。其中一些功能對大型項目團隊有很重要的意義,但對於小型項目開發可能並沒有必要。所以,並 非每一個程序員都須要瞭解每一個語言特性的全部細節。咱們加入這些邊欄圖標來幫助讀者弄清哪些內容能夠隨後再學習,而哪些主題是更爲重要的。
對於包含C++語言基礎內容的章節,咱們用一個小人正在讀書的圖標加以標記。用這個圖標標記的那些章節,涵蓋了構成語言核心部分的主題。每一個人都應該閱讀並理解這些章節的內容。
對 於那些涉及高級主題或特殊目的主題的章節,咱們也進行了標記。在首次閱讀時,這些章節能夠跳過或快速瀏覽。咱們用一疊書的圖標標記這些章節,指出在這些地 方,你能夠放心地放下書本。快速瀏覽這些章節多是一個好主意,這樣你就能夠知道有這些特性存在。但在真正須要在本身的程序中使用這些特性以前,沒有必要 花費時間仔細學習這些主題。
爲了進一步引導讀者的注意力,咱們還用放大鏡圖標標記了特別複雜的概念。咱們但願讀者對有這種標記的章節能多花費一些時間完全理解其中的內容。在這些章節中,至少有一些,其主題的重要性可能不是那麼明顯;但咱們認爲,你會發現這些章節涉及的主題對理解C++語言原來相當重要。
交叉引用的普遍使用,是本書採用的另一種閱讀幫助。咱們但願這些引用能幫助讀者容易地翻閱書中的內容,同時還能在後面的例子涉及到前面的內容時容易地跳回到前面。
沒有改變的是,《C++ Primer》還是一本清晰、正確、全面的C++入門教材。咱們經過給出一系列複雜度逐步增長的例子來說授這門語言,這些例子說明了語言特性,展現瞭如何充分用好C++語言。
本書的結構
咱們首先在第I部分和第II部分中介紹了C++語言和標準庫的基礎內容。這兩部分包含的內容足夠你編寫出有意義的程序,而不是隻能寫一些玩具程序。大部分程序員基本上都須要掌握本書這兩部分所包含的全部內容。
除了講授C++的基礎內容,第I部分和第II部分還有另一個重要目的:經過使用標準庫中定義的抽象設施,使你更加適應高級程序設計技術。標準庫設施自己是一組抽象數據類型,一般用C++編寫。用來設計標準庫的,就是任何C++程序員均可以使用的用來構造類的那些語言特性。咱們講授C++語言的一個經驗是,在先學習了使用設計良好的抽象類型後,讀者會發現理解如何構造本身的類型更容易了。
只有在通過全面的標準庫使用訓練,並編寫了各類標準庫所支持的抽象程序後,咱們才真正進入到那些容許你編寫本身的抽象類型的C++特性中去。本書的第III部分和第IV部分介紹瞭如何編寫類的形式的抽象類型。第III部分包含基礎內容,第IV部分介紹更專門的語言特性。
在第III部分中,咱們將介紹拷貝控制問題,以及其餘一些使類能像內置類型同樣容易使用的技術。類是面向對象編程和泛型編程的基礎,第III部分也會介紹這些內容。第IV部分是《C++ Primer》的結束部分,它介紹了一些在組織大型複雜系統時很是有用的語言特性。此外,咱們將在附錄A中總結標準庫算法。
讀者幫助
本書的每一章均以一個總結和一個術語表結束,二者一塊兒扼要回顧了這一章的大部分學習重點。讀者應該將這些部分做爲我的備忘錄:若是你不理解某個術語,能夠從新學習這一章的相應部分。
在本書中咱們還使用了其餘一些學習輔助:
關於編譯器的注意事項
在撰寫本書時(2012年7月),編譯器提供商正在努力工做,升級編譯器以匹配最新的ISO標準。咱們使用最多的編譯器是GNU編譯器4.7.0。本書中只有一小部分特性在此編譯器中還沒有實現:繼承構造函數、成員函數的引用限定符以及正則表達式庫。
致謝
咱們要特別感謝標準委員會幾位現任和前任委員:Dave Abrahams、Andy Koenig、Stephan T. Lavavej、Jason Merrill、John Spicer和Herb Sutter在準備本書的過程當中提供的幫助。在理解新標準的一些更微妙之處,他們爲咱們提供了寶貴的幫助。咱們還要感謝不少致力於升級GNU編譯器以實現新標準的人們。
與舊版《C++ Primer》中同樣,咱們要感謝Bjarne Stroustrup不知疲倦地爲C++工做以及他和做者長時間的友誼。咱們還要感謝Alex Stepanov的非凡洞察力,催生了標準庫核心的容器和算法。最後,咱們要感謝C++標準委員會的全部委員,感謝他們這麼多年來在淨化、精煉和改進C++語言方面的辛苦工做。
咱們衷心感謝審稿人:Marshall Clow、Jon Kalb、Nevin Liber、Dr. C. L. Tondo、Daveed Vandevoorde和Steve Vinoski,他們建設性的意見幫助咱們對全書作出了大大小小的改進。
本書是用Latex及其發行版本中的不少包來進行排版的,咱們應該感謝Latex社區成員創造出如此強大的排版工具。
最後,咱們要感謝Addison-Wesley公司的優秀員工,他們指導了本書的整個出版過程:Peter Gordon,咱們的編輯,他給了咱們動力再次修改C++ Primer;Kim Boedigheimer,保證了一切按計劃進行;Barbara Wood,她在編輯過程當中找到了大量編輯錯誤;還有Elizabeth Ryan,很高興再次和她共同工做,她指導咱們完成了整個設計和生產流程。