探索C++語言開源史
之所以去學(xué)C++語言,因?yàn)?FONT>C++語言簡潔、高效,但是C語言也有其自身的缺點(diǎn),例如弱的類型檢查機(jī)制等,使得一些編程人員對C++語言開發(fā)紛紛表現(xiàn)了很頭疼的狀況。。
20世紀(jì)80年代,美國貝爾實(shí)驗(yàn)室的Bjarne Stroustrup博士及其同事在C語言的基礎(chǔ)上引入了面向?qū)ο蟮木幊趟枷牒鸵粋€class關(guān)鍵字,形成了最早的C++語言原型。后來,C++語言被融入了越來越多的語言特性。
其中***有意義、影響最深遠(yuǎn)的莫過于template(模板)的引入,最終美國國家標(biāo)準(zhǔn)化協(xié)會ANSI(American National Standard Institute)和國際標(biāo)準(zhǔn)化組織ISO(International Standards Organization)一起對C++語言進(jìn)行了標(biāo)準(zhǔn)化工作,并于1998年正式發(fā)布了C++語言的國際標(biāo)準(zhǔn)ISO/IEC:98-14882。C++已經(jīng)成為***的程序設(shè)計語言之一。
C語言之所以要起名為“C”,是因?yàn)樗侵饕獏⒖寄莻€時候的一門叫B的語言,它的設(shè)計者認(rèn)為C語言是B語言的進(jìn)步,所以就起名為C語言;但是B語言并不是因?yàn)橹斑€有個A語言,而是B語言的作者為了紀(jì)念他的妻子,他的妻子名字的***個字母是B;
當(dāng)C語言發(fā)展到頂峰的時刻,出現(xiàn)了一個版本叫C with Class,那就是C++最早的版本,在C語言中增加class關(guān)鍵字和類,那個時候有很多版本的C都希望在C語言中增加類的概念;后來C標(biāo)準(zhǔn)委員會決定為這個版本的C起個新的名字,那個時候征集了很多種名字,***采納了其中一個人的意見,以C語言中的++運(yùn)算符來體現(xiàn)它是C語言的進(jìn)步,所以就叫C++,也成立了C++標(biāo)準(zhǔn)委員會;
美國AT&T貝爾實(shí)驗(yàn)室的本賈尼·斯特勞斯特盧普(Bjarne Stroustrup)博士在20世紀(jì)80年代初期發(fā)明并實(shí)現(xiàn)了C++(最初這種語言被稱作“C with Classes”)。一開始C++是作為C語言的增強(qiáng)版出現(xiàn)的,從給C語言增加類開始,不斷的增加新特性。
虛函數(shù)(virtual function)、運(yùn)算符重載(operator overloading)、多重繼承(multiple inheritance)、模板(template)、異常(exception)、RTTI、命名空間(name space)逐漸被加入標(biāo)準(zhǔn)。1998年國際標(biāo)準(zhǔn)組織(ISO)頒布了C++程序設(shè)計語言的國際標(biāo)準(zhǔn)ISO/IEC 1488-1998。
C++是具有國際標(biāo)準(zhǔn)的編程語言,通常稱作ANSI/ISO C++。1998年是C++標(biāo)準(zhǔn)委員會成立的***年,以后每5年視實(shí)際需要更新一次標(biāo)準(zhǔn),下一次標(biāo)準(zhǔn)更新將是在2009年,目前我們一般稱該標(biāo)準(zhǔn)C++0x。
遺憾的是,由于C++語言過于復(fù)雜,以及他經(jīng)歷了長年的演變,直到現(xiàn)在(2009年)只有Visual C++ 2010 CTP開發(fā)環(huán)境的編譯器完全符合這個標(biāo)準(zhǔn)。另外,就目前學(xué)習(xí)C++而言,可以認(rèn)為他是一門獨(dú)立的語言;他并不依賴C語言。
我們可以完全不學(xué)C語言,而直接學(xué)習(xí)C++。根據(jù)《C++編程思想》(Thinking in C++)一書所評述的,C++與C的效率往往相差在正負(fù)5%之間。所以有人認(rèn)為在大多數(shù)場合C++ 完全可以取代C語言(然而我們在單片機(jī)等需要謹(jǐn)慎利用空間、直接操作硬件的地方還是要使用C語言)。
【編輯推薦】