星期日, 12月 10, 2006

The C++ language

為了寫出數位病理切片,最近在邊寫邊翻這本C++書。

國內品牌的C++叢書和這本完全是天與地的差別。目前我從第一章看到第七章,作者對每個C++的功能和設計,都盡可能做出詳盡的解釋,比如為甚麼Pass by Reference的Argument發生Type Conversion的時候一定要用const?Function Overloading的時候順序如何處理?然後Compiler在什麼時機做出型別檢查,什麼時候無法做型別檢查,為甚麼這裡要跳個錯誤訊息出來等等,深度和國內書是萬全不同的。

缺點也不是沒有,它的章節編排和內容深度完全不適合初學者,比如書本第四章mini calculator的範例,書本自己講就他類似一個mini compiler,沒有底子的人碰到想必是當場仆街。範例程式常常用到還沒講到的東西,比如講解變數的章節就用了一大堆流程控制,初學者如果讀這本書一章一章翻卡關的可能性頗高。讀這本書也要有一點點對機器的感覺,雖然不必很多,不過對於定址邊界這些名詞完全不熟的讀者會有障礙,這點也和C++不高不低有關吧。

這本書雖然對於「如何寫出好的程式/避免寫怎麼樣的程式」有所著墨,不過讀到目前,他內容最主要還是在敘述C++的功能和理由,對於Design Pattern方面的問題牽涉叫少,就算有也是low level的detail居多,也許是因為還沒讀完吧,說不定我讀到後面他會告訴我物件怎麼模組化也不一定。

這本書對初學者可能不友善,但我還是感覺寫C++的人,在對C++有一定的基礎認識以後,一定要把這本捧來從頭讀一遍。可能有點不好讀啦,可是深奧往往無法避免難讀,不是嗎? 全文連結

0 意見: