C++編譯器真的那么快嗎?
最近開始對C++編譯器進(jìn)行學(xué)習(xí),去各大書店買了一些關(guān)于C++和C++編譯器的書。看完后覺得C++跟C基本沒什么太大的區(qū)別,C++***的有點(diǎn)就是方便快捷,運(yùn)行速度也有了大幅度提高。
這樣就帶來一個很奇怪的問題,如果我們把一個NULL值隨便轉(zhuǎn)換成一個其他類型,那么C++編譯器會非常正常的調(diào)用到對應(yīng)的方法,這樣有好處,也有壞處,好處是C++追求的速度得到了,但是壞處是,邏輯會變得很古怪。
除了這個以外,C++里面的構(gòu)造函數(shù)也還真夠復(fù)雜的,復(fù)制構(gòu)造函數(shù),賦值構(gòu)造函數(shù),如果把類型轉(zhuǎn)換那套加進(jìn)去,一個值在運(yùn)行時到底是什么類型,還真是要慢慢研究。另外由于C++號稱是一個enhance版的C。
所以,把C的那套都帶進(jìn)去了,變量類型搞得無比復(fù)雜,在原來的變量,指針之外,還要再加上引用。 這么復(fù)雜,真是何苦了。
還有一個不能不說的是。
今天剛看到了異常處理,發(fā)現(xiàn)異常處理還要到達(dá)方法級,實(shí)在古怪,而導(dǎo)致這個問題的原因就是,C++在變量聲明時,不是將他初始為默認(rèn)值,例如NULL之類,而是調(diào)用它的缺省構(gòu)造函數(shù)。因?yàn)檫@個,又導(dǎo)致了構(gòu)造函數(shù)聲明時要帶個列表,這樣就會導(dǎo)致進(jìn)入構(gòu)造函數(shù)前就拋出了異常,ai,簡簡單單的一個問題搞得那么復(fù)雜,實(shí)在讓人抓狂。
C++程序良好的可移植性使得C++語言成為程序設(shè)計人員的***工具語言,而保證這一特性必需使用標(biāo)準(zhǔn)化的C++編碼。國內(nèi)高校尤其是高職院校的教材中,存在著大量非標(biāo)準(zhǔn)化的C++程序,不利于培養(yǎng)具有標(biāo)準(zhǔn)化C++編程風(fēng)格的學(xué)生。
本文從C++發(fā)展史、教育工作者和教材規(guī)范化等多個角度出發(fā),分析了這一問題產(chǎn)生的原因,并提出了相應(yīng)的解決辦法。 1983年***個C++程序投入使用,1994年8月,ansi/iso委員會草案登記,這便是業(yè)內(nèi)所稱的早期的C++標(biāo)準(zhǔn)。
1998年11月,iso/iec:98-14882標(biāo)準(zhǔn)(以下簡稱98標(biāo)準(zhǔn))被批準(zhǔn),標(biāo)志著C++代碼的標(biāo)準(zhǔn)化正式誕生[1]。C++語言誕生以來,延續(xù)了c語言的重要特征,即C++源程序良好的可移植性。正是這一特性,使得C++編譯器長期以來一直是程序開發(fā)人員的***。 C++語言良好的可移植性是它具有較強(qiáng)生命力的關(guān)鍵所在。目前標(biāo)準(zhǔn)委員會正在修訂C++標(biāo)準(zhǔn),并擬于2009年發(fā)布修訂后的09標(biāo)準(zhǔn)。
【編輯推薦】