C++語(yǔ)言既保留了C語(yǔ)言的有效性、靈活性、便于移植等全部精華和特點(diǎn),又添加了面向?qū)ο缶幊痰闹С,具有?qiáng)大的編程功能,可方便地構(gòu)造出模擬現(xiàn)實(shí)問(wèn)題的實(shí)體和操作;編寫(xiě)出的程序具有結(jié)構(gòu)清晰、易于擴(kuò)充等優(yōu)良特性,適合于各種應(yīng)用軟件、系統(tǒng)軟件的程序設(shè)計(jì)。用C++編寫(xiě)的程序可讀性好,生成的代碼質(zhì)量高,運(yùn)行效率僅比匯編語(yǔ)言慢10%~20%。
C++語(yǔ)言具有以下特點(diǎn):
(1) C++是C語(yǔ)言的超集。它既保持了C語(yǔ)言的簡(jiǎn)潔、高效和接近匯編語(yǔ)言等特點(diǎn),又克服了C語(yǔ)言的缺點(diǎn),其編譯系統(tǒng)能檢查更多的語(yǔ)法錯(cuò)誤,因此,C++比C語(yǔ)言更安全。
(2) C++保持了與C語(yǔ)言的兼容。絕大多數(shù)C語(yǔ)言程序可以不經(jīng)修改直接在C++環(huán)境中運(yùn)行,用C語(yǔ)言編寫(xiě)的眾多庫(kù)函數(shù)可以用于C++程序中。
(3) 支持面向?qū)ο蟪绦蛟O(shè)計(jì)的特征。C++既支持面向過(guò)程的程序設(shè)計(jì),又支持面向?qū)ο蟮某绦蛟O(shè)計(jì)。
(4) C++程序在可重用性、可擴(kuò)充性、可維護(hù)性和可靠性等方面都較C語(yǔ)言得到了提高,使其更適合開(kāi)發(fā)大中型的系統(tǒng)軟件和應(yīng)用程序。
Stroustrup工作起于1979年的C with Classes。這個(gè)構(gòu)思起源于 Stroustrup 做博士論文時(shí)的一些程序撰寫(xiě)經(jīng)驗(yàn)。他發(fā)現(xiàn)Simula具備很利于大型軟件開(kāi)發(fā)的特點(diǎn),但Simula的運(yùn)行速度太慢,無(wú)法對(duì)現(xiàn)實(shí)需求發(fā)揮功效;BCPL雖快得多,但它過(guò)于低級(jí)的特性,使其不適于大型軟件的開(kāi)發(fā)。當(dāng)Stroustrup開(kāi)始在貝爾實(shí)驗(yàn)室工作時(shí),他有分析UNIX核心關(guān)于分布式計(jì)算的問(wèn)題;叵肫鹚牟┦空撐慕(jīng)驗(yàn),Stroustrup開(kāi)始為C語(yǔ)言增強(qiáng)一些類(lèi)似Simula的特點(diǎn)。之所以選擇C,是因?yàn)樗m于各種用途、快速和可移植性。除了C和Simula之外,同時(shí)也從其它語(yǔ)言中取得靈感,如ALGOL 68、Ada、CLU以及ML。剛開(kāi)始時(shí),類(lèi)、派生類(lèi)、存儲(chǔ)類(lèi)型檢查、內(nèi)聯(lián)和默認(rèn)參數(shù)特性,都是通過(guò)CfrONt引入C語(yǔ)言之中。1985年10月出現(xiàn)了第一個(gè)商業(yè)化發(fā)布。
1983年,C with Classes改命名為C++。加入了新的特性,其中包括虛函數(shù)、函數(shù)名和運(yùn)算符重載]]、參考、常數(shù)、用戶(hù)可控制的自由空間存儲(chǔ)區(qū)控制、改良的類(lèi)型檢查,以及新的雙斜線(xiàn)(//)單行注解風(fēng)格。1985年,發(fā)布第一版《C++程序設(shè)計(jì)語(yǔ)言》,提供一個(gè)重點(diǎn)的語(yǔ)言參考,至此還不是官方標(biāo)準(zhǔn)。1989年,發(fā)布了Release 2.0。引入了多重繼承、抽象類(lèi)、靜態(tài)成員函數(shù)、常數(shù)成員函數(shù),以及成員保護(hù)。1990年,出版了The Annotated C++ Reference Manual。這本書(shū)后來(lái)成為標(biāo)準(zhǔn)化的基礎(chǔ)。稍后還引入了模板、異常處理、命名空間、新的強(qiáng)制類(lèi)型轉(zhuǎn)換,以及布爾類(lèi)型。
隨著C++語(yǔ)言的演變,也逐漸演化出相應(yīng)的標(biāo)準(zhǔn)程序庫(kù)。最先加進(jìn)C++標(biāo)準(zhǔn)庫(kù)的是流I/O程序庫(kù),其用以取代傳統(tǒng)的C函數(shù),如printf和scanf。隨后所引入的程序庫(kù)中最重要的便是標(biāo)準(zhǔn)模板庫(kù),簡(jiǎn)稱(chēng)STL。