算起來,用C++已經有七八年時間,也有點能夠分享的東西;
如下推薦的書籍大多有電子版。對於技術類書籍,電子版並不會帶來一個好的閱讀體驗。若是喜歡,最好找紙版(圖書館是個好去處);電子版更適合做爲一個參考書籍常備電腦。
我將分爲基礎篇、Windows篇、和Linux/Unix篇 三個部分來介紹這些經典書籍:
C++入門
《C++ Primer》html
個人C++入門讀物是《 C++大學教程》,這本書800多頁,因爲學習時間長,一個學期學這麼一本書,時間上的富裕,讓我有充分的時間來吸取。書中80%的代碼我都敲到PC上運行過;後來再看《C++ primer》的時候,也就一個星期的功夫翻完了。都是入門讀物,介紹的也都全面。剛接觸C++的朋友,至少應該將這方面的書好好過一遍。
語言技巧,性能優化
《 Effective C++》
《 C++必知必會》
《 More Effective C++》
有了語言基礎以後,接着就是細節上的深刻,進一步領會C++的精髓。《 Effective C++》能夠看做是一本C++ 疑難解惑手冊; 對於C++語言層次深刻一點的東西,容易出錯的知識點,在這邊書上可找到滿意解答;適合屢次品味。
《 C++必知必會》《 More Effective C++》則做爲對Effective C++ 沒有講完的補充,可看做前者看完後意猶未盡時使用;
順便說下,這三本書都不厚,小冊子,每本也就幾天的功夫就能夠搞定;
底層硬貨
C++源於C,對於指針、對於各類地址的偏移計算,對於大端小端的深入剖析,還得靠一些硬通貨來解析;這兩本書雖然說不厚,但讀起來確實費勁,信息量很足,不少都是在平時C++使用中沒有意識到的知識點,卻又都是重要的點。讓人有知其因此然的快感;
涉及到底層的東西,都是用來驗證編程功底是否紮實。要想完全掌握C++底層的東西,仍是得看看專家編程,很好的兩本書,指針等講的很透徹。
STL
《 C++標準程序庫》
《 STL源碼剖析》
《 C++標準程序庫》是屬於百科全書類型,講解基礎,但語言平淡(是以參考手冊的角度來寫的),沒有勇氣將其所有翻完,撿感興趣的和本身很缺少的部分看了看(裏面關於智能指針方面的論述,還不錯);
《
泛型編程與STL》裏面對萃取機制及各泛型的概念論述很是透徹,前6章爲主要篇章,不可跳過。後面的可在實踐中編碼練習或查找。 後面章節可在看完以後作爲手冊使用,對STL中的經常使用算法和容器進行了歸類講解,並給出了至關數量的示例。
《 STL源碼剖析》每個推薦深刻STL的文章應該都少不了這本書。下面幾個問題能夠考查一下是否須要看看: 1.STL中DQueue的實現機制(數據結構式如何組織的,其迭代器的插入和刪除過程當中的實現) 2.是否熟悉紅黑樹,可否敘述其插入和刪除過程,如何調整。 3.萃取器的幾種實現
Boost
當標準庫沒法再知足你的時候,就輪到Boost出場了。編程,講究兩個效率,一是開發效率,二是運行效率。與其它編譯型語言相比(java、C#等),C++屬於後者,運行效率不錯,但開發效率着實低。除了C++更底層的緣由外,另外一方面的緣由就是標準庫提供的功能不足。沒有太多的工具,想實現什麼都得本身來一遍,重複的造輪子的工做在程序員中不斷上演;
Boost庫是對C++標準庫的擴展,讓咱們在開發的過程當中有更多的工具能夠選擇。正則表達式、智能指針等工具都是很是有用的工具,而函數對象,Lambda則讓咱們在編寫C++的代碼中更爲優雅;
這裏提供的一本書是Boost的入門經典。它的目的就是讓你對boost產生興趣。等有了興趣以後,就直接上boost的官網吧,須要什麼儘管拿。
設計模式
《 設計模式》
《 道法天然》
《 設計模式》是該領域的聖經,未全看完。雖然說經典,但一頁一頁的翻完,還真要點耐性。不像老外寫書的風格,這本書看的很累(這也是一本參考手冊)。我認爲在對大部分模式都有必定的瞭解後再來看這本書,會找到不少興趣點。
《
設計模式精解》個人設計模式之路是從這本書入門的,經過幾個實例來解釋模式的用法,以及爲何要用模式(這個可能更重要),不過全書也就講了10來個模式,意猶未盡。對設計模式感興趣、初學者推薦;
《 道法天然》是國人寫的很不錯的一本書,用他們本身寫的一個框架系統做爲實例,貫穿全文,講解各類模式的用法。看事後,體會到模式在大項目,特別是這種框架系統中的應用真是太到位了。同時,熟悉MFC的朋友會在本書中收穫更多的東西,MFC也是一個框架系統,經過本書的講解,能夠體會到MFC的內部設計以及爲什麼如此設計(書中就專門講到MFC中的設計思想),同時,在講單件模式的時候,還帶出了MFC中theApp的做用(爲何要在MFC中安排一個theApp全局變量?這是我看到的惟一一本書解釋了這個問題的);
算法篇
《 編程珠璣》
講解數據結構和算法技巧的壓軸好書。
基礎篇就談這些,後續將討論C++的應用,Windows篇和Linux/Unix篇;
(原文地址:http://www.cnblogs.com/me115/archive/2012/12/26/2833346.html)