c++入门必备系列
摘要:本文介紹了在有c 語言基礎的前提下,如何選擇性地閱讀 c++ in depth 系列的書籍。指出了哪本書的哪一章是值得一讀的。 c++入門必備系列: The.C++.Programming.Language.Special.Edition( 3th edition) Publisher: Addison-Wesley Professional; 3 edition (February 11, 2000)
by Bjarne Stroustrup Hardcover: 1030 pages ISBN-10: 0201700735 這本書是“必備的”,也就是說,有就行了。裝點門面非常合適。開口必談本杰明,能顯著地提升你的品味。 全書五部分: 0、簡介 1、基本功 2、抽象機制 3、標準庫 4、c++設計 作為初學者,你馬馬虎虎讀讀 2 抽象機制 部分第十章 Classes,照貓畫虎地把你的c程序外面套一個class。哈哈,你可以出去吹牛了:我學會 C++了!你甚至會激動地暢想你也可以像Bjarne Stroustrup 一樣寫本書,書的名字叫做 《2小時入門c++》。 千萬不要把這本書一口氣讀完。我覺得,不可能。
Effective C++ by Scott Meyers? Paperback: 288 pages
Publisher: Addison-Wesley Professional; 2 edition (September 2, 1997)
Language: English
ISBN-10: 0201924889
市場是檢驗書籍質量的唯一標準,288 頁的厚度,50條編程箴言。把“你應該這么做”的道理娓娓向你道來。 這是一本最好的從c向c++過渡的書。面試官也最喜歡從這里面抽題。比如:const 和 #define 有什么淵源?“Item 1: ?Prefer const and inline to #define.” ;或者:為什么要聲明虛的析構函數“Item 14: ?Make sure base classes have virtual destructors. ” 讀這本書時,你會感覺到:Scott Meyers 怎么這么煩?是的,這本書里介紹的都是規范性的,即使你不 const、不 virtual、不 delete(),你的程序跑起來似乎也沒什么問題。 有些耐心吧,“根紅苗正”是很重要的。再說,難得有 Scott Meyers 如此耐心的老師,人家講課,那家伙可真是“曉之以理”啊。 每天晚上一個小時,兩個星期就搞定了。 C++ Primer, Fourth Edition? By Stanley B. Lippman, Josée Lajoie, Barbara E. Moo? Pages: 912? Publisher: Addison Wesley Professional??February 14, 2005? ISBN: 0-201-72148-1 哈哈!c++真是個好東東。你看 string hishome = "揮汗如雨"; string myhomework = hishomework; 哈哈,老師還以為我的家庭作業也是“揮汗如雨”地 strcpy()的呢,他不知道我有神奇的 string 呢。string 真比 char* 省心多了。 屢試不爽。傳說中的“完全兼容”? 可是,可是…… string myhomework="砍頭去尾"; char* hishomework = myhomework; 老師(編譯器)檢查出問題來了。咋回事捏?有內鬼? 這可不是內鬼,這叫“潛規則”。 要知道這些潛規則,就得找 c++ prime了。 Lippman 手把手地告訴你這些標準庫應該怎么用。 Part II: Containers and Algorithms 容器和算法, 詳細地介紹了 標準庫的每個函數的用法。 不過,一個比這更好的資源是:http://www.cppreferance.com/? 同樣是介紹標準庫的函數用法的。但是要簡明多了。適合快餐式的學習。 所以,C++ Primer,也是雞肋。
中階:
虛函數究竟是個什么東東?const 究竟起了什么作用?臨時對象是怎樣產生的? think in c++ 是我覺得c++最好的書。“俠”“菜”咸宜。既然是中階,那前六章的內容就不需要看了。 8 constants?講了 const 約束的對象、 指針、類成員、函數參數和返回值,以及臨時變量的 const 屬性。在c 中,const的作用弱到可以忽略,但在c++中,對 const 的漠視,會讓你的程序編譯過程成為一部苦難史。 其它的,對 virtual function 的匯編語言描述,對 inline函數棧分配情況的詳解。這種深度是其它的書籍沒有達到的。 其實如果讀了這本書,c++ program language 就真不需要看了。 Inside the C++ Object Model? By Stanley B. Lippman? Pages ? ? : 304 Publisher : Addison Wesley? May 03, 1996 ISBN ? ? ?: 0-201-83454-5
問:c++比c 多了什么東東? 答:兩個加號。 問:為什么多了兩個加號? 答:因為c++比多了兩個東東:一是 this指針,二是虛表。 問:一個對象有多大? 答1:數據成員大小之各。 答2:還得考慮字節對齊。 答3:若有虛函數,還得加上虛表指針的大小。 以上知識,你在其它書中就獲得了。但是 問:一個沒有數據成員的對象有多大? 你知道嗎? 只有這本書能給你答案。 這是書所有話題圍繞“效率”和“空間”展開。古有“錙銖必較”,這本書是“byte必較”。 這本書探究了c++ 語言模型。說實話:相當晦澀。即使侯先生的中譯本,也不易讀明白。不過如果你想充分融合 c 的高效性和 c++的可移植性,你應該讀讀他。對象究竟有多大,虛函數在多大程度上影響了效率。臨時對象會讓你的程序有多慢。 編譯器給你的構造函數和向下轉型安插了哪些代碼,try...catch()效率如何…… 這本書中有一些內容過于執著。對于我們“吃快餐”的人來說,不必在一節環節投入過多的業務。比如,多重繼承,虛繼承。模板技術出現后,這些技術已經不被推薦使用了。所以,不要去研究它們。但是,有一節你必須去看,4.2 的第一部分。 more effective c++? Paperback: 336 pages
Publisher: Addison-Wesley Professional (January 8, 1996)
ISBN-10: 020163371X
by Bjarne Stroustrup Hardcover: 1030 pages ISBN-10: 0201700735 這本書是“必備的”,也就是說,有就行了。裝點門面非常合適。開口必談本杰明,能顯著地提升你的品味。 全書五部分: 0、簡介 1、基本功 2、抽象機制 3、標準庫 4、c++設計 作為初學者,你馬馬虎虎讀讀 2 抽象機制 部分第十章 Classes,照貓畫虎地把你的c程序外面套一個class。哈哈,你可以出去吹牛了:我學會 C++了!你甚至會激動地暢想你也可以像Bjarne Stroustrup 一樣寫本書,書的名字叫做 《2小時入門c++》。 千萬不要把這本書一口氣讀完。我覺得,不可能。
Effective C++ by Scott Meyers? Paperback: 288 pages
Publisher: Addison-Wesley Professional; 2 edition (September 2, 1997)
Language: English
ISBN-10: 0201924889
市場是檢驗書籍質量的唯一標準,288 頁的厚度,50條編程箴言。把“你應該這么做”的道理娓娓向你道來。 這是一本最好的從c向c++過渡的書。面試官也最喜歡從這里面抽題。比如:const 和 #define 有什么淵源?“Item 1: ?Prefer const and inline to #define.” ;或者:為什么要聲明虛的析構函數“Item 14: ?Make sure base classes have virtual destructors. ” 讀這本書時,你會感覺到:Scott Meyers 怎么這么煩?是的,這本書里介紹的都是規范性的,即使你不 const、不 virtual、不 delete(),你的程序跑起來似乎也沒什么問題。 有些耐心吧,“根紅苗正”是很重要的。再說,難得有 Scott Meyers 如此耐心的老師,人家講課,那家伙可真是“曉之以理”啊。 每天晚上一個小時,兩個星期就搞定了。 C++ Primer, Fourth Edition? By Stanley B. Lippman, Josée Lajoie, Barbara E. Moo? Pages: 912? Publisher: Addison Wesley Professional??February 14, 2005? ISBN: 0-201-72148-1 哈哈!c++真是個好東東。你看 string hishome = "揮汗如雨"; string myhomework = hishomework; 哈哈,老師還以為我的家庭作業也是“揮汗如雨”地 strcpy()的呢,他不知道我有神奇的 string 呢。string 真比 char* 省心多了。 屢試不爽。傳說中的“完全兼容”? 可是,可是…… string myhomework="砍頭去尾"; char* hishomework = myhomework; 老師(編譯器)檢查出問題來了。咋回事捏?有內鬼? 這可不是內鬼,這叫“潛規則”。 要知道這些潛規則,就得找 c++ prime了。 Lippman 手把手地告訴你這些標準庫應該怎么用。 Part II: Containers and Algorithms 容器和算法, 詳細地介紹了 標準庫的每個函數的用法。 不過,一個比這更好的資源是:http://www.cppreferance.com/? 同樣是介紹標準庫的函數用法的。但是要簡明多了。適合快餐式的學習。 所以,C++ Primer,也是雞肋。
中階:
think in c++
Paperback: 1224 pages
Publisher: Sams; 5 edition (November 25, 2004) ISBN-10: 0672326973虛函數究竟是個什么東東?const 究竟起了什么作用?臨時對象是怎樣產生的? think in c++ 是我覺得c++最好的書。“俠”“菜”咸宜。既然是中階,那前六章的內容就不需要看了。 8 constants?講了 const 約束的對象、 指針、類成員、函數參數和返回值,以及臨時變量的 const 屬性。在c 中,const的作用弱到可以忽略,但在c++中,對 const 的漠視,會讓你的程序編譯過程成為一部苦難史。 其它的,對 virtual function 的匯編語言描述,對 inline函數棧分配情況的詳解。這種深度是其它的書籍沒有達到的。 其實如果讀了這本書,c++ program language 就真不需要看了。 Inside the C++ Object Model? By Stanley B. Lippman? Pages ? ? : 304 Publisher : Addison Wesley? May 03, 1996 ISBN ? ? ?: 0-201-83454-5
問:c++比c 多了什么東東? 答:兩個加號。 問:為什么多了兩個加號? 答:因為c++比多了兩個東東:一是 this指針,二是虛表。 問:一個對象有多大? 答1:數據成員大小之各。 答2:還得考慮字節對齊。 答3:若有虛函數,還得加上虛表指針的大小。 以上知識,你在其它書中就獲得了。但是 問:一個沒有數據成員的對象有多大? 你知道嗎? 只有這本書能給你答案。 這是書所有話題圍繞“效率”和“空間”展開。古有“錙銖必較”,這本書是“byte必較”。 這本書探究了c++ 語言模型。說實話:相當晦澀。即使侯先生的中譯本,也不易讀明白。不過如果你想充分融合 c 的高效性和 c++的可移植性,你應該讀讀他。對象究竟有多大,虛函數在多大程度上影響了效率。臨時對象會讓你的程序有多慢。 編譯器給你的構造函數和向下轉型安插了哪些代碼,try...catch()效率如何…… 這本書中有一些內容過于執著。對于我們“吃快餐”的人來說,不必在一節環節投入過多的業務。比如,多重繼承,虛繼承。模板技術出現后,這些技術已經不被推薦使用了。所以,不要去研究它們。但是,有一節你必須去看,4.2 的第一部分。 more effective c++? Paperback: 336 pages
Publisher: Addison-Wesley Professional (January 8, 1996)
ISBN-10: 020163371X
千萬不要以為?more effective c++??就是比 c++ prime more 了一點兒。?effective c++??是編程習慣,?more effective c++ ?是設計技法。virtual ctors、smart pointers、reference counting、proxy classes,double dispatching。這本書生動地講述了這些設計模式的應用。侯捷先生對這本書的喜愛溢于言表:“是一本好書,若不是有人發現,它就被埋沒了,這個發現的人就是我。”
書很薄,作者分門別地講,專門方便我們“快餐一族”的,就不用“劃重點”了。
高階:泛型編程
泛型編程說起來簡單:迭代而已。但真正學起來真不容易,原因之一就是:層層迭代迷亂了我們的雙眼,我們看不到真實的代碼實現。
Modern C++ Design
唉,07年的時候,我找遍全中國。終是沒找到這本書有賣的,滿心遺憾。
終究還能借到,也算幸運。
轉載于:https://www.cnblogs.com/diylab/archive/2008/11/16/1334385.html
總結
- 上一篇: 轻松实现SQL Server异地备份
- 下一篇: 解决log4net独占日志文件的问题以及