C++語言是對C語言的擴展,是C語言的超集。C語言是美國貝爾實驗室在1969~1973年開發(fā)的,與此同時,還用它開發(fā)了UNIX操作系統(tǒng)。C語言又是由B語言衍生而來的,B語言是貝爾實驗室的Ken Thompson在BCPL語言的基礎上開發(fā)的,并用它編寫了第一個UNIX操作系統(tǒng)。BCPL語言是英國劍橋大學的Martin Richards,60年代在美國MIT時設計的。
1971年,貝爾實驗室的Dennis Ritchie擴展了B語言(通過增加類型),他稱之為NB,即New B。在更改了B語言的結構,并重寫了B語言的編譯器后,Ritchie稱他的新語言為C。1983年,出現(xiàn)了許多C語言的版本,美國國家標準化協(xié)會(ANSI)在1989年出版了標準的C語言,稱之為ANSI C。
也是在1983年,貝爾實驗室的Bjarne Stroustrup在C語言的基礎上,創(chuàng)建了C++語言,它是為UNIX系統(tǒng)環(huán)境設計的。C++語言增強了C語言的能力,使得程序員能夠改進編寫程序的質(zhì)量,并易于程序代碼的復用。C++語言的ISO標準已在1997年11月被一致通過,1998年8月被正式批準。
C++語言在1980年開始被使用,"C++"這個名字是由Rick Maseitti提出,到1983年夏確定的。C++的創(chuàng)作靈感來源于當時計算機語言多方面的成果,特別是BCPL語言(Basic Combined Programming Language, 它也是C語言的來源之一)和Simula 67語言(以面向對象為核心的語言),同時還借鑒了Algol 68。就如同它的名字表達的那樣,C++語言是C語言的一個超集,它是一門混合型的語言,既支持傳統(tǒng)的結構化程序設計,又支持面向對象的程序設計,這是C++語言成功流行的一個重要原因。
讀者可能產(chǎn)生疑問,既然面向對象的程序設計方法比結構化的程序設計方法先進許多,為什么C++語言仍舊支持后者,而不愿意成為一門純粹的面向對象的程序設計語言?
實際上,這種做法也是從程序設計語言發(fā)展實踐中得到的經(jīng)驗。面向對象程序設計的概念提出后,某些公司和機構曾經(jīng)開發(fā)出一些純面向對象的語言,比如第一個成功的、純面向對象的程序設計語言的Smalltalk,但是由于廣大的程序員不能一下子完全接受面向對象程序設計的思想,不能完全適應面向對象程序設計的技術,這些語言都沒有能夠廣泛的流行起來。事實上,程序員們長期采用結構化的程序設計方法,并從中汲取了許多寶貴經(jīng)驗,形成了巨大的財富,這些財富應該得到繼承和發(fā)展;而且結構化程序設計方法在小型軟件項目的開發(fā)設計上仍然很適用,完全否定這種設計方法也是不恰當?shù)?。C++作為一門混合型語言,在增加對于面向對象方法的支持的同時,還繼承了傳統(tǒng)程序設計語言C的優(yōu)點,克服了其不足之處,使得自身既適用于結構化程序設計,又能滿足面向對象程序設計的要求,這就符合廣大程序員逐步更新其程序設計觀念和方法的要求,因而很快流行起來??傊瑢τ趥鹘y(tǒng)的財富不是完全拋棄,而是繼承并發(fā)展之,是C++語言成功的重要原因。
1971年,貝爾實驗室的Dennis Ritchie擴展了B語言(通過增加類型),他稱之為NB,即New B。在更改了B語言的結構,并重寫了B語言的編譯器后,Ritchie稱他的新語言為C。1983年,出現(xiàn)了許多C語言的版本,美國國家標準化協(xié)會(ANSI)在1989年出版了標準的C語言,稱之為ANSI C。
也是在1983年,貝爾實驗室的Bjarne Stroustrup在C語言的基礎上,創(chuàng)建了C++語言,它是為UNIX系統(tǒng)環(huán)境設計的。C++語言增強了C語言的能力,使得程序員能夠改進編寫程序的質(zhì)量,并易于程序代碼的復用。C++語言的ISO標準已在1997年11月被一致通過,1998年8月被正式批準。
C++語言在1980年開始被使用,"C++"這個名字是由Rick Maseitti提出,到1983年夏確定的。C++的創(chuàng)作靈感來源于當時計算機語言多方面的成果,特別是BCPL語言(Basic Combined Programming Language, 它也是C語言的來源之一)和Simula 67語言(以面向對象為核心的語言),同時還借鑒了Algol 68。就如同它的名字表達的那樣,C++語言是C語言的一個超集,它是一門混合型的語言,既支持傳統(tǒng)的結構化程序設計,又支持面向對象的程序設計,這是C++語言成功流行的一個重要原因。
讀者可能產(chǎn)生疑問,既然面向對象的程序設計方法比結構化的程序設計方法先進許多,為什么C++語言仍舊支持后者,而不愿意成為一門純粹的面向對象的程序設計語言?
實際上,這種做法也是從程序設計語言發(fā)展實踐中得到的經(jīng)驗。面向對象程序設計的概念提出后,某些公司和機構曾經(jīng)開發(fā)出一些純面向對象的語言,比如第一個成功的、純面向對象的程序設計語言的Smalltalk,但是由于廣大的程序員不能一下子完全接受面向對象程序設計的思想,不能完全適應面向對象程序設計的技術,這些語言都沒有能夠廣泛的流行起來。事實上,程序員們長期采用結構化的程序設計方法,并從中汲取了許多寶貴經(jīng)驗,形成了巨大的財富,這些財富應該得到繼承和發(fā)展;而且結構化程序設計方法在小型軟件項目的開發(fā)設計上仍然很適用,完全否定這種設計方法也是不恰當?shù)?。C++作為一門混合型語言,在增加對于面向對象方法的支持的同時,還繼承了傳統(tǒng)程序設計語言C的優(yōu)點,克服了其不足之處,使得自身既適用于結構化程序設計,又能滿足面向對象程序設計的要求,這就符合廣大程序員逐步更新其程序設計觀念和方法的要求,因而很快流行起來??傊瑢τ趥鹘y(tǒng)的財富不是完全拋棄,而是繼承并發(fā)展之,是C++語言成功的重要原因。

