網站:https://www.yanbinghu.com/2019/09/15/58540.html
前言
一本合適的入門書能讓你學習的時候信心倍增,如飢似渴,而一本不合適的入門書讓你望而卻步,懷疑人生。
它很優秀
C++相對於其他語言來說,是一門較為複雜的語言,傳言一年精通,三年熟悉,五年瞭解,十年用過。關於C++的言論實在太多,鑑於本人使用年限極短,不多做評價。那麼我們來看看《C++ Primer》(注意,不是C++ primer plus),這本評分9.3分的書,它好在哪裡?在我看來,這幾個方面是非常不錯的:
- 事無鉅細,從基本類型到字符串,向量和數組,從基本語句到函數;從類到容器,從動態內存到拷貝控制,從面向對象到模板泛型,它幾乎涵蓋了C++的各個方面,這也是為什麼它是一塊大鑽頭的原因之一。
- 告訴你編譯器怎麼想。例如在介紹類的時候,告訴你編譯器先編譯成員的聲明,然後再編譯成員的函數體。在書中,有很多地方都告訴了你,編譯器是如何做的,除此之外還會告訴你為什麼要這樣做,讓你知其然,更知其所以然。
- 最佳實踐建議。一般來說,一段代碼,能用就可以了,但為了保證代碼生命力的長久,你必須去了解最佳實踐。例如建議你儘量使用標準庫類型而不是數組類型;儘量避免使用內置數組和指針等。
- 貼心的注意事項。同樣在書中很多地方告訴你,應該如何避免一些不推薦的操作,例如在說到string的時候,特別說明了字符串字面值與string是不同的類型;在說到命名空間的時候,建議不應該在頭文件中使用using聲明。
- 一章結尾小結和的術語表。看完這一章了?不如看看最後的小結,看看本章核心內容是什麼?感受到C++的複雜了?看看本章的術語你都瞭解了沒有。
- 新特性。在第五版中,最後一部分列出了C++11的新特性的索引。可以方便快速的瞭解C++11的新特性。
- 配套的習題和完整可運行代碼,並且有多種版本。地址:http://www.informit.com/store/c-plus-plus-primer-9780321714114
- 可以當手冊。當某個特性不是很清楚的時候,拿起來翻翻查看一下。
但不一定適合你
而正由於上面這些特點,它可能不適合初學者,其不適合的原因也非常明顯:
- 內容過多,讓初學者望而卻步,不知重點。在實踐中,也不必全面地使用C++語言的各種特性。
- 雖然與書配套有完整的代碼,但從書中內容來看,很難清楚書中代碼該如何運行,可操作性對初學者來說難度比較大,也不利於快速上手。
- 部分內容過深,初學者看的時候不知所云,容易受挫,自我懷疑。很多內容在講解的時候,假設你已經懂了相關的前置知識,然而你可能不懂這些前置知識,到底難以繼續。
- 第一章從hello world到類,直接上命令行。作為新手的你,可能一臉懵逼。
- 近千頁,容易變磚 。
就像《C程序設計語言》一樣,C++ primer並不適合沒有編程基礎的初學者,但是絕對適合任何一位C++學習者一讀再讀。
總結
它很優秀,但不一定適合你。如果你有一定的編程基礎,或者已經通過其他入門書籍學習了C++,那麼建議你直接食用。
再說兩句
- 如果你閱讀了本書,覺得難,也不要懷疑,因為它不適合初學者
- 語言特性之外還有諸如編譯鏈接,內存管理等諸多前置知識需要了解。
- 好不一定適合自己,具體情況具體分析。
- 以上純屬個人觀點,僅供參考。
不說了,顯示器不夠高了,墊一下。歡迎留言說說你的C++入門書,
關注公眾號【編程珠璣】,獲取更多Linux/C/C++/Python/Go/算法/工具等原創技術文章。後臺免費獲取經典電子書和視頻資源
閱讀更多 守望的編程珠璣 的文章