(原創) C++ Primer 4th與Modern C++ (C/C++)

所謂的Modern C++,主要就是用不用STL的差別,在C++ Primer 4th,大膽的先講STL,然後才講OOP,這和傳統的書總是C -> OOP -> GP -> 最後才講STL完全不一樣,希望讓初學者一開始就習慣STL,大幅揚棄使用pointer的寫法。

若使用Modern C++寫法,其實寫C++就和C#、Java一樣舒服,不用在考慮記憶體的問題,也不用再考慮pointer,甚至程式比C#、Java都還精簡,因為STL還多了algorithm,這是C#、Java所沒有的。

但現實並非如此,C++是個歷史悠久的語言,真正工作時,一定會看到Classic C++寫法的程式碼,也就是不用STL,都用pointer、array、linked list的寫法,所以C++ Primer 4th也算有良心,還是在書中提到了pointer、array、但沒提到linked list了,或許他覺得linked list該在資料結構的書講吧,但問題來了,假如不講還好,讓人覺得Modern C++是那麼的美好,而且C++ Primer 4th又不願意在pointer、array、lined List等領域講的很清楚,都只是蜻蜓點水帶過,反而讓人看了之後問題更多,結果我只能再找其他的書補足這些主題。

以下是我同時也參考的書
<<The C Programming Language>>
C語言的原典

<<C Primer Plus>>
一本講C語言非常清楚的好書,pointer,array想要搞懂,看這本書準沒錯

<<深度學習 C++>>
中央大學數學系教授 子由 所寫的書,如pointer、array都講的很深入,整本書寫的很精采,值得推薦,但我今天發現在Copy Costructor、Assignment Operator竟然沒講到問題最大的pointer處理。

<<C++物件導向程式設計 進階與應用>>
鄭家瑜 著
都擺明是進階了,第一章講的就是linked list,真是勁爆,Copy Control也講到了我想要的pointer處理,整本談的都是C++較進階的主題。

該學這種Classic C++的寫法嗎?

STL的確比較美,也比較方便,但效率還是不及使用pointer、array、linked list,再不考慮效率前提下,應該使用STL及Modern C++,若本身程式的演算法已經很耗時,或在Embedded System,效率是重要考量下,就該使用Classic C++寫法,我覺得這也是C++的特色,同時兼顧效率與程式的優雅,讓你可以根據自己的需要加以選擇。

posted on 2007-01-16 21:26  真 OO无双  阅读(1056)  评论(0编辑  收藏  举报

导航