C++編譯語言可以使程序從循環體和switch語句內跳出,繼續執行邏輯上的下一條語句。不宜用在別處,結束本次循環,接著判斷是否執行下一次循環,所以由c++編譯器產生的代碼一定比vb的編譯代碼效率更高。
一個好的程序與一個偉大的程序的區別就是其是否具有良好的錯誤處理支持。實際上,如果在實現中首先進行錯誤處理,而不是在最後才進行,那麼整個程序的開發和測試過程會更加完美。但是,錯誤處理只能與語言所支持的內容相一致。
vbscript具有基本的錯誤處理支持功能。在默認情況下,不能捕獲vbscript中的錯誤。每次懷疑產生錯誤時,要調用on error resume next功能,並檢查error對象。而C++中的錯誤處理比較好,這是因為有“異常處理”,本章的後面部分將詳細介紹。
最小的依賴性
正如上面所說,C++編譯語言,即C++代碼在執行之前已轉換為機器碼。只要此代碼不依賴於外部的動態鏈接庫(dll),C++就可以在不需要安裝額外程序的情況下移動到運行同樣操作系統的其他機器和微處理器上,而移動java程序時需要先安裝java運行期庫。
利用現有的代碼
由於c和C++已經存在許多年了,現在有許多可利用的代碼,你的服務器組件可以使用現有的c/C++代碼或庫。例如統計庫和到老系統的c接口。
最大化com特征
com與C++很接近,實際上, don box(com的權威)在他的《essential com》一書的第一章寫道:“com就是更好的C++”。他說明了com規范是如何從C++語言規律中產生出來的。通過理解C++,會對com有更深的理解。某些語言不能利用所有的com特征,而在C++中,幾乎可以使用所有的com特征。
知道什麼時候使用C++編譯語言重要的,同樣,知道什麼時候不使用C++也是重要的。想像一下那些長期維護代碼的人,如果他們中沒有一些C++程序員支持C++,那麼開發者們不得不把眼光轉向另外一些他們熟悉的語言。
改變C++組件時,為了看到這些改變的結果,必須重新編譯該組件代碼,這會花費很長的開發時間。C++不能像asp頁面代碼那樣,只使用記事本,改變代碼的一行,重新裝載而得到結果。因此,如果某些工作需要經常變化(如原型),不要用C++。
在C++中,對一些致命的錯誤不能獲得更多的保護,寫一個使組件崩潰的代碼是很容易的。這是為了提供快速代碼而付出的代價, C++不會停下來去檢查代碼是否按設計運行能否使程序不崩潰依賴於開發者的技巧。如果在這方面花的時間較少或剛剛學習C++,最好不要使用C++。
等到已經意識到C++中所有容易犯的錯誤,而且在檢測組件之前花了許多時間,才可以使用C++,如果想很快、很容易地建立一個組件,而且也不考慮該組件的執行速度,那麼使用vb吧!學習新東西的最好方法就是利用現有的技巧。對於asp開發者來說,已經學習了C++所要求的許多技巧,特別是,jscript語法和activex或com的面向對象編程的概念。
1. jscript
大部分asp開發者都用jscript在浏覽器上使用dhtml。jscript的語法與c非常相似,所以,如果懂得jscript,那麼就懂得基本的c語法。當然,只是C++語法的子集。C++有許多額外的語法來支持面向對象編程,這就是我們下一步要做的。
2. 面向對象編程
如果你在vb中使用過類(class),則對任何com對象和文檔對象模型(document objectmodel,dom )都應熟悉,因為已經有了面向對象編程(oop)的概念。在前面已經說過, c和C++的區別是C++支持面向C++編譯語言。