類型與聲明---第四章

      本章作爲C++基礎部分的第一章,內容相對來說較少,也蠻簡單。對於我來說,最應該注意的兩個問題可能就是:

      1.存儲的問題。

      這個問題很籠統,也很底層,但是卻感覺很難,之前一直沒有想過。對於一個對象,什麼時候該分配空間?什麼時候又會出現一定的“分配延遲”?這時候就牽扯出聲明與定義的區別的討論了。在C++中,一個名字,也就是標識符在被程序使用之前都必須先聲明。即必須刻畫清楚它的類型,以通知編譯器這個名字所引用的的是哪一類的實體。然而,雖然很多情況下大部分聲明會讓你感覺這個東西編譯器應該混了個臉熟了,但是,它們並沒有定義有關名字所引用的那個實體。也就相當於,只是確定了關係,但還沒辦好證,囧。。。。

      好吧,迴歸正傳,給出一個確定一些的認識就是:只有被分配了內存實體纔算得上是一個定義,否則只能算是聲明。那就要問了,爲什麼只有定義不好,還偏要出一個聲明呢?在CPL這本書裏面並沒有提及太多,但是查閱別的資料可以發現,區別聲明與定義主要是爲C++多文件的結構服務的。爲了在多個文件中實現共享某個變量,這種區別就顯得很有必要了。而在C++中,爲了使編譯器能夠正常的維持程序,所有對象都必須遵循唯一定義原則,也就是ODP,所以,任何在多個文件中被使用的變量都必須有與定義分離的聲明。

      2.移植性的問題

      從這一章的練習也可以看出,Stroustrup所強調的就是針對各個具體C++實現的問題。讓自己真正瞭解熟悉自己的系統,進而在面對一些既有程序或者是在未來編寫程序時,能夠考慮到程序移植性的問題,這都是一個好的程序員必須具備的基本素質。

      也正如書中所說,限制依賴於實現的語言特徵的影響並不太難,限制依賴於系統的庫功能的影響就困難的多了。在所有可能之處都使用標準庫的功能是一個辦法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章