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