百萬C++程序員的啓蒙書,暢銷20餘年,這部經典終於出配套習題解答了!

在編程的世界裏,很多語言來了又走,而C++卻屹立了30年,並在21世紀仍保持強勁勢頭。

去年,C++之父Bjarne Stroustrup公佈了C++20添加的新特性,讓衆多程序員炸了鍋。其中一個新特性——模塊(Modules),至少讓代碼編譯速度提升5倍以上。

Bjarne Stroustrup的理念是,一種語言不應該只能實現設計者想得到的功能,它必須有能力做得更好。這種追求“更好”的理念,也讓C++在30年裏經久不衰。

伴隨C++長盛不衰的,還有一本暢銷了20餘年、引領百萬程序員進入C++世界的經典圖書——《C++ Primer Plus》。這本書出版至今已更新六代,是很多技術大牛案頭常備的工具書。

現在,這本被C++程序員奉爲聖經的《C++ Primer Plus 》終於出配套習題解答了。

image

image

1

充滿生機的C++

目前,全球有約450萬名左右的C++程序員,同時C++社區以每年10萬到15萬新增開發者的速度增長。

與C語言一樣,C++也是在貝爾實驗室誕生的。Bjarne Stroustrup剛開始並沒有打算開發某種編程語言,而是想構建一套分佈式系統。

C++主要是爲了我的朋友和我不必再使用匯編語言、C語言或其他現代高級語言來編程而設計的。它的主要功能是可以更方便地編寫出好程序,讓每個程序員更加快樂。

——Bjarne Stroustrup

它的前身C語言,屬於過程式的並且基於函數,雖然包含能夠封裝數據的記錄類型(struct),但是它不包含類似對象的行爲來表現被封裝的狀態。顯然,用戶迫切希望有一種語言既擁有C語言的強大功能,又擁有面向對象的類的靈活性和可擴展性,於是C++應運而生。

對於C++,Stroustrup比較關心的是讓它更有用,而不是實施特定的編程原理或風格。在確定C++語言特性方面,真正的編程需要比純粹的原理更重要。之所以在C的基礎上創建C++ ,是因爲C語言簡潔、適合系統編程、使用廣泛且與UNIX操作系統聯繫緊密。

基於C語言高效、簡潔、快速和可移植性的傳統,C++有三寶:

  1. C語言代表的過程性語言

  2. C++在C語言基礎上添加的類代表的面嚮對象語言

  3. C++模板支持的泛型編程

對於學習C++的人來說,這是福也是禍。是福,在於如果你掌握了C++,其他的語言真的是小case,一天翻完基礎語法,三天上手,三個月精通一門新語言基本毫無問題;是禍,在於C++對編程知識的涵蓋面太廣了,學習難度巨大。

要知道,C++發展的腳步從未停下,如今大量用於各種計算平臺的C++實現得以面世;而IS0C++標準( C++11 和C++20)爲確保衆多實現的相互兼容提供了基礎。這些標準規定了語言必須具備的特性、語言呈現出的行爲、標準庫函數、類和模板,讓C++在不同計算平臺和實現之間的可移植性。

也許你選擇C++的原因是必須爲一個C++項目提供技術支持,或者只是打算使用C++編寫新的代碼,不論理由是什麼,這個決定都是非常明智的。未來,C++在底層開發的優勢將會越來越不可或缺。

2

歷時20年,再版6次,入門C++首選

作者Stephen畢業於加州理工學院,在美國加州大學伯克利分校獲得博士學位。他單獨或與他人合作編寫的編程圖書有十多本,其中《New C Primer Plus》獲得了計算機出版聯合會1990年度最佳“How-to”計算機圖書獎,《C++ Primer Plus》獲得了計算機出版聯合會1991年度最佳“How-to”計算機圖書獎提名。

早年間,Stephen寫過另一本霸榜C語言入門類暢銷書,這本書開創了優良的初級教程傳統,比如:

  • 初級教程應當是友好的、便於使用的指南。

  • 初級教程不要求您已經熟悉相關的編程概念。

  • 初級教程強調的是動手學習,通過簡短、容易輸入的示例闡述一兩個概念。

  • 初級教程用示意圖來解釋概念。

  • 初級教程提供問題和練習來檢驗您對知識的理解,從而適於自學或課堂教學。

《C++ Primer Plus》建立在這樣的基礎之上,吸收了其中很多成功的理念,幫助您理解這種用途廣泛的語言,並學習如何使用它:

  • 對何時使用某些特性,例如何時使用公共繼承來建立is-a關係,提供了概念方面的指導。

  • 闡釋了常用的C++編程理念和技術。

  • 提供了大量的附註,如提示、警告、注意等

image

《C++ Primer Plus》的前4版在美國的總銷售量超過了10萬冊。

2005年,人郵出版了《C++ Primer Plus》的第 5 版,不過那時是基於 ISO C++標準編寫的,該標準的官方名稱爲 C++99 和 C++03(C++99/C++03),其中2003標準主要是對1999標準的技術修正,並沒有添加任何新功能。

C++在不斷髮展,編寫第六版時,新標準獲得了C++國際標準委員會的批准。在制定期間,該標準名爲C++0x,但現已改名爲C++11。

在IT技術圈有句俗話,“追新不追舊”。歷經20餘年,6次改版,中文版累計銷售突破30萬冊,並首次支持C++11新標準。這本《C++ Primer Plus(第6版)中文版》絕對可以成爲你入門C++的首選。

事實上,這本書也經受住了時間的考驗,並和讀者一起成長,自然也得到了讀者的認可。

對於系統編程語言來說,除了C++ ,我們沒有太多其他的選擇。D語言曾經有挑戰C+ +的機會,但機會似乎已經消失,我預期未來G0語言也會挑戰C++ ,但不管怎樣,目前C++依然是王者。這本《C++ Primer Plus》是C+ +圖書中內容豐富者。C++是一門很容易誤用的語言,學習C+ +需要鉅細靡遺。我選擇用這本書複習並更新我的C+ +知識。

——創新工場首席架構師 蔡學鋪

3

雙劍合璧——習題解答面世

作爲《C++ Primer Plus(第6版)中文版》官方配套習題解答《C++ Primer Plus(第6版)》在之前版本的基礎之上進行了全新升級,涵蓋了C++語言的新進展以及C++11標準的詳細內容。與之前的版本一樣,其目標依然是爲讀者提供一本入門型、條理清晰、見解深刻的C++語言教程。

爲了鍛鍊並提升讀者的動手編程能力,《C++ Primer Plus(第6版)》除了在每章正文中包含了大量短小精悍的實例之外,還在每章末尾提供了頗有深度的綜合性的複習題和編程練習題。本書編者對這些複習題和編程練習給出了自己的理解和解答。

image

來看看本書都有哪些亮點:

亮點一:思維導圖式解讀C++各章知識點

在每章開篇,會有一個思維導圖,幫助讀者直觀理解本章內容;然後是一段簡練的文字,用來梳理每章涉及的理論內容。

這種方式更妙之處在於可以幫助讀者構建知識體系,所學的各種知識都可以在這種結構清晰的思維導圖中展現。

image

亮點二:對複習題和編程練習進行了詳細的剖析

每個程序員都經歷過從學理論到實際敲代碼的無助,明明感覺自己都喫透了,可爲什麼脫離了參考書,自己就只會寫個#include ?

其實,理論跟實踐之間,隔着一個重要的因素——知其然更要知其所以然。

本書對《C++ Primer Plus(第6版)》中給出的練習進行了庖丁解牛式的分析,確保讀者理解練習的目的以及代碼爲什麼這樣寫,在這個過程中產生自己的思考,在徹底夯實理論知識的同時,進一步提升實際編程能力。

亮點三:海量實戰案例

既然是習題解答,那這本書就測重實戰操作,通過海量的練習進而把知識點融會貫通。全書共18章節,每章除了有重點理論概念彙總,每章最後的習題都有詳細的編碼和解析。

舉個例子,C++程序可使用哪3種C風格字符串?

C++程序中使用的C風格字符串主要有3種形式,其中最常用的是字符數組的形式,其次是以雙引號標識的字符串常量形式,最後也可以使用指向字符串首字符的指針的形式來表示。

其中使用字符數組形式表示和使用指針形式表示的字符串在程序中類似,使用雙引號表示的是常量形式的字符串,程序中不能修改字符串的數據。

作爲《C++ Primer Plus (第6版)中文版》理想的學習伴侶,《C++ Primer Plus(第6版)中文版習題解答》可以切實提升C++語言初學人員的編程技能,掌握C++語言編程的精髓,爲後期的程序開發之路打下堅實基礎。

兩本書“雙劍合璧”,特別適合需要系統學習C++語言的初學者閱讀,也適合打算鞏固C++語言知識或者希望進一步提高編程技術的程序員閱讀。

其實做爲一個學習者,有一個學習的氛圍跟一個交流圈子特別重要這裏我推薦一個C/C++基礎交流583650410,不管你是小白還是轉行人士歡迎入駐,大家一起交流成長。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章