有哪些值得推薦的 C++ 經典書籍?

c++程序設計教程

c++編程思想

c++大學教程

c++程序設計語言

數據結構演算法與應用c++語言描述

c++標準模板庫------自修教程與參考手冊

泛型編程與STL

深度探索c++對象模型

設計模式---可復用面向對象軟體的基礎

重構---改善既有代碼的設計

Essential c++

Effective c++

More Effctive c++

C++ primer

前五本應該屬於入門書籍,後面的屬於學習難度比較大的,想提高C++的編程能力,看看這些書籍有好處。建議你把編程思想這本書多看看。多做練習題,對提高編程水平的幫助是很大的。

其實語言是相通的,一門語言學會了,學習其他語言就比較容易了。 業界有這樣一種說法,因為JAVA這門語言包含了C++的一些特性,掌握了C++,就等於掌握了JAVA的80%。

C++ 書籍大匯

語言基礎入門:

1. C++ Primer 《C++入門》(通常不用中文名)

by Stanley B. Lippman

有第三版和第四版,如其名,是C++入門的不二選擇,是全面廣泛的參考書目,內容豐富,筆觸嚴謹。

如果說Bjarne Stroustrup是C++之父的話,那麼Lippman可以說是C++之母了:)

晨星:適合有豐富C經驗,缺乏C++經驗的。不過我個人一直認為此書帶著過於強烈的C語言的痕迹,對於C++的學習未必是好事。

網址:http://126.am/2tipp0

http://126.am/Cu6x63

2. The C++ Programming Language 《C++程序設計語言》

by Bjarne Stroustrup

有第三版特別版,剛剛為一個朋友買了一本,不用說了 Bjarne Stroustrup寫的,權威之作,可以說與C++ Primer是同等廣博的「聖經」級別

的參考書。

晨星:簡稱TC++PL,有其他語言的豐富經驗的。(也有人簡稱之為「TCPL」,但需與另一本《The C Programmer Language》區分開來)

網址:http://126.am/hKhEM3

3. Essential C++ 《C++基礎》

by Stanley B. Lippman

同樣是入門的基礎,也是由Stanley B. Lippman執筆的作品,研究語法÷語意再好不過的了。

網址:http://126.am/FanXE2

4. Accelerated C++

by Andrew Koenig and Barbara E. Moo

夫妻一同的作品,Koenig夫婦可以說也是頂尖領域的專家,相比Barbara E. Moo比較注重教學,這本本人同晨星老大一樣沒有讀過,當時它的

副標題應該能說明一些內容了吧。

Practical Programming by Example 通過實例來實踐編程

晨星:這兩本薄一些,都是不錯的選擇。《Accelerated C++》本人沒有讀過,從各方面的評價來看,完全值得推薦。

以上的書籍都應該隨手查閱的,即使是將來,也有一些細節可能一下不能回憶依然需要查閱,然而這四本內容涉及程度有一定的交叉,可以選

擇而讀,個人認為和晨星的建議一樣:TC++PL是應該閱讀的。

進階A,經驗與慣用法:

網址:http://126.am/ntqmi2

5. Effective C++ , More Effective C++

by Scott Meyers

這幾本我認為應當歸在一起介紹,老實說這些條款是開發項目以及平時學習中不可缺少的Golden Tips,反覆閱讀,你會發現這些條款實在是再

深刻不過的了。

晨星:簡稱EC。C++程序員必讀!很多時候,我們說C++聖經不是指TC++PL,而是這一本。《The Pragmatic Programmer》一書中寫到:「一旦

你發現自己要參與C++項目的開發,趕快跑(不要走)到書店去購買Scott Mayer的《Effective C++》,可能還要《More Effective C++》」。

可見晨星對於Scott Meyers的這兩本推薦的程度了!

6. Exceptional C++ , More Exceptional C++ , Exceptional C++ Style

by Herb Sutter

這三本也是該歸在一起的,Herb Sutter是C++標準委員會的老大,現在人在微軟,他的書當然也是相當具有啟發意義的。

網址:http://126.am/EG44n1

7. C++ Coding Standards: 101 Rules, Guidelines, and Best Practices 《C++ 編程規範》

by Herb Sutter and Andrei Alexandrescu

這本最近又看了一遍也是感到尤其深刻,案頭書的描述再好不過了,裡面豐富的名言,豐富的內涵,以及每次重複閱讀都能有新的發現,哎,

不稱之為經典也不幸哎!

晨星:個人認為此書應為C++程序員必備的案頭書。幾乎Effective系列和Exceptional系列都在這裡得到了總結。最新的模板、異常的業界經驗

都在這裡的到了體現。可能的唯一缺陷就是對一個新手而言,關於「為什麼這麼做」的問題,解釋的不夠。

我的看法是:如果你不理解其中的條款,記憶,並且照做;如果你理解其中的條款,我猜你一定會同意書中的觀點。我認為這本書中的內容至

少在2009年以前都不會過時,人們將廣為傳誦它制定的101條戒律。

還不知道他的簡稱,也許「101」會成為一個候選者?

晨星的評論似乎有點冗長,作為進階的Guidelines,絕對是首選。

進階B,STL與范型(GP):

作為標準庫的一部分,STL已經深入我們的開發生活,vector,list,deque,set,map等等都是我們首選的容器,iterator的機制已經無可厚非地

被接受,STL引入的范型也給我們打開了一閃窗。

8. The C++ Standard Library 《C++標準程序庫—自修教程與參考手冊》

A Tutorial and Reference by Nicolai M.Josuttis,

STL怎麼用?看看本書吧。Nicolai M.Josuttis好像也是C++標準委員會的成員,也是C++ Template的作者。

晨星:聽說過STL嗎?這本書會教你最基本的,也是最重要的STL的使用。這本書,應該是必讀的。

9. Effective STL

簡單的使用後的提升

晨星:會使用STL還不夠,還必須知道什麼時候選擇什麼STL組件,這是STL使用的必讀書。

網址:http://126.am/CfOrT0

10. Generic Programming and the STL: Using and Extending the C++ Standard Template Libra 《泛型編程與STL》。

Using and Extending the C++ Standard Template library by Matthew H.Austern

書的副標題很謙虛,似乎說本書只是使用和擴展,其實本書可謂GP理論入門的必讀,STL的內涵與設計都可以看到

晨星:這本書理論性較強,但是真的很嚴謹,而且並不是非常難懂。理解其中對於Concept的解釋,將是非常重要的。

11. C++ Standard Template Library 《C++ STL》

by P.J.Plauger,Alexander A.Stepanov, Meng Lee,David R.Musser

兩位STL庫的設計人員P.J.Plauger和Meng Lee,講述STL實現的原理

晨星:這不是講述使用程序庫的,而是講述程序庫實現原理的。腸胃不好的,需要慢慢吸收。

12. C++ Template 《C++模板》

by David Vandevoorde, Nicolai M. Josuttis

本書可謂全面介紹了模板的使用細則,當然本人認為介紹的細節不是很細緻,歸類不如C++ Primer,當然模板的基本用法都可以看到。

晨星:在閱讀STL、Boost或者Loki的源代碼之前,請仔細閱讀本書,它可以減輕一些閱讀的煩惱。這本書是討論C++模板的權威。

C++ Template Metaprogramming : Concepts, Tools, and Techniques from Boost and Beyond

by David Abrahams and Aleksey Gurtovoy

本書沒有看到中文版,也是一本介紹模板元編程的專業參考書,十分細緻地講述了高級的模板技術,只是本書只有英文版的。

再進階A,底層機制:

13. The Annotated C++ Reference Manual

by Margaret A.Ellis and Bjarne Stroustrup

標準庫的全面解析,BS老大為標準庫量身定做的很OFFICAL的參考。

簡稱:ARM

14. Inside the C++ Object Model 《深度探索C++物件模型》

by Stanley Lippman

即使反覆學習了進階A,依然有許多語言實現方面的Puzzle問題,尤其是虛繼承,臨時對象等令人麻煩的深層問題值得學習,Lippman以一位專

家的身份給了我們一個深窺語言內部的可能,正如晨星所言,Lippman的書都有C和底層實現的影子。

晨星:C程序員讀後一定會覺得C++原來並不神秘。

再進階B,設計模式:

15. Design Patterns - Elements of Reusable Object Oriented Software 《設計模式》

by Erich Gamma,Richard Helm,Ralph Johnson,and John Vlissides

老實說不應該把設計概念的東西拿到這裡來,當時本書大多數以C++語言為例子,也是我們應該學習的。

GoF聽說過嗎?Gang of Four四人幫:)就是說的本文的四位作者,他們是設計模式總結的先驅,看了本書之後,OO的設計模式會深入里的大腦。

由於模式的粒度過大,所以不能被代碼化,只是一種概念,可以說是體現在項目中的靈魂。

還要提到的是最近John Vlissides去世了,在此我對他的逝世感到萬分的惋惜。

16. Modern C++ Design : Generic Programming and Design Patterns Applied 《C++設計新思維》

by Andrei Alexandrescu

本書最近好好地研究過了,這裡終於要介紹Andrei Alexandrescu了,他是Real公司的項目經理,是GP模板技術的天才,他的高深模板技術影響

了BOOST以及全世界的模板怪傑,本書中他介紹他的庫Loki,雖然庫十分激進沒有實際用途,當時展現的絢爛的特技令人嘆服!同時本書是設計

模式用范型實現的經典展現,以及Policy設計模式在其中的極致應用,直接影響了BOOST的adaptor設計(7個Policy)甚至影響了標準庫的智能

指針項目(雖然最後被否認了,當時絕對是完美的實現方法)

晨星:簡稱MCD。在閱讀MCD之前,建議先閱讀一下《C++ Template》。

網址:http://126.am/3iPwR3

17. Thinking in C++ 《C++編程思想》

by Bruce Eckel

本書本人只是瞄了一眼,似乎第二本實用編程技術比較有用。

晨星:這本書及其中文版傳言好壞都有,沒有認真看過,不做評價,如果確有興趣,不妨嘗試一下該書。

18. C++必知必會

by

如同101一樣,當然也是權威的作品,只是沒有遇到好的天時而已。

晨星:如果早一年,這本書將是重量級的,然而它被101和《Exceptional C++ Style》蓋過一頭。

19. C++ Gotchas: Avoiding Common Problems in Coding and Design 《C++程序設計陷阱》

by

常規,曾經有許多人讓我去看此書,可惜一直沒有去看的精力,於是擱置許久,當時深刻了解此書中被引用內容的權威,好評也是不斷。

晨星:這又是一本我未曾讀過,而且廣受好評的書。

20. STL 源碼剖析

by 候捷

最近剛剛看了電子版,少有的國人之作,內容方面還可以,只是一些候氏方言令人頭疼。

晨星:這本書我剛到手,就被人"借"走,以至於到現在也沒有看過。看過這本書的朋友,可以給一個合適的評價。



推薦閱讀:

計算機中缺失MSVCP120D.dll和MSVCR120D.dll怎麼解決?
如何勸說上級更新 GCC 和 VS 的版本,並把項目遷移至 C++11?
C++ 為什麼有時候必須額外寫 template?
如何用 C++ 在 10 行內寫出八皇后?

TAG:書籍推薦 | C | 書籍 | 編程 |

這幾種家常菜為什麼不能吃?

十二種有毒的家常菜

(1)土豆燒牛肉: 由於土豆和牛肉在被消化時所需的胃酸的濃度不同,就勢必延長食物在胃中的滯留時間,從而引起胃腸消化吸收時間的延長,久而久之,必然導致腸胃功能的紊亂。

(2)小蔥拌豆腐: 豆腐中的鈣與蔥中的草酸,會結合成白色沉澱物----草酸鈣,同樣造成人體對鈣的吸收困難。

(3)豆漿沖雞蛋: 雞蛋中的粘液性蛋白會與豆漿中的胰蛋白酶結合,從而失去二者應有的營養價值。

(4)茶葉煮雞蛋: 茶葉中除生物鹼外,還有酸性物質,這些化合物與雞蛋中的鐵元素結合,對胃有刺激作用,且不利於消化吸收。

(5)炒雞蛋放味精: 雞蛋本身含有許多與味精成分相同的谷氨酸,所以炒雞蛋時放味精,不僅增加不了鮮味,反而會破壞和掩蓋雞蛋的天然鮮味。

(6)紅白蘿蔔混吃: 白蘿蔔中的維生素c含量極高,但紅蘿蔔中卻含有一種叫抗壞血酸的分解酵素,它會破壞白蘿蔔中的維生素c。一旦紅白蘿蔔配合,白蘿蔔中的維生素c就會喪失殆盡。

(7)蘿蔔水果同吃: 近年來科學家們發現,蘿蔔等十字花科蔬菜進入人體後,經代謝很快就會產生一種抗甲狀腺的物質----—硫氰酸。該物質產生的多少與攝入量成正比。此時,如果攝入含大量植物色素的水果如橘子、梨、蘋果、葡萄等,這些水果中的類黃酮物質在腸道被細菌分解,轉化成羥苯甲酸及阿魏酸,它們可加強硫氰酸抑制甲狀腺的作用,從而誘發或導致甲狀腺腫。

(8)海味與水果同食: 海味中的魚、蝦、藻類,含有豐富的蛋白質和鈣等營養物質,如果與含有鞣酸的水果同食,不僅會降低蛋白質的營養價值,且易使海味中的鈣質與鞣酸結合成一種新的不易消化的物質,這種物質會刺激胃而引起不適,使人出現肚子痛、嘔吐、噁心等癥狀。含鞣酸較多的水果有柿子、葡萄、石榴、山楂、青果等。因此這些水果不宜與海味菜同時食用,以間隔兩個小時為宜。

(9)牛奶與橘子同食: 剛喝完牛奶就吃橘子,牛奶中的蛋白質就會先與橘子中的果酸和維生素c相遇而凝固成塊,影響消化吸收,而且還會使人發生腹脹、腹痛、腹瀉等癥狀。

(10)酒與胡蘿蔔同食: 最近,美國食品專家告誡人們:酒與胡蘿蔔同食是很危險的。專家指出,因為胡蘿蔔中豐富的β胡蘿蔔素與酒精一同進入人體,就會在肝臟中產生毒素,從而引起肝病。特別是在飲用胡蘿蔔汁後不要馬上去飲酒。

(11)白酒與汽水同飲: 因為白酒、汽水同飲後會很快使酒精在全身揮發,並生產大量的二氧化碳,對胃、腸、肝、腎等器官有嚴重危害,對心腦血管也有損害。

(12)吃肉時喝茶: 有的人在吃肉食、海味等高蛋白食物後,不久就喝茶,以為能幫助消化。殊不知,茶葉中的大量鞣酸與蛋白質結合,會生成具有收斂性的鞣酸蛋白質,使腸蠕動減慢,從而延長糞便在腸道內滯留的時間。既容易形成便秘,又增加有毒和致癌物質被人體吸收的可能。



推薦閱讀:

一個紅薯,一個香蕉,一條冬蟲夏草,一個上萬元的人蔘,一個上千元的燕窩,一瓶雞精,這幾樣食物的營養價值可以如何比較?
動物捕食只吃掉獵物(或者植物)就好了,不需要額外補充鹽分。為什麼人要額外補充食鹽?
各位理想中的三餐有哪些菜譜?
什麼牌子的白巧克力最好吃?
如果你知道明天生命就要結束,那最後一頓晚餐你想以什麼食物結束此生?

TAG:美食 | 烹飪 | 飲食 | 食物 | 家常菜 |