"": 200,
"": "",
"": "C++這個詞在中國大陸的程序員圈子中通常被讀做“C加加”,而西方的程序員通常讀做“Cplusplus”,“CPP”。它是一種使用非常廣泛的計算機編程語言。C++是一種靜態數據類型檢查的、支持多重編程範式的通用程序設計語言。它支持過程化程序設計、數據抽象、麵向對象程序設計、製作圖標等等泛型程序設計等多種程序設計風格。
美國AT&T貝爾實驗室的本賈尼·斯特勞斯特盧普(BjarneStroustrup)博士在20世紀80年代初期發明並實現了C++(最初這種語言被稱作“CwithClasses”)。一開始C++是作為C語言的增強版出現的,從給C語言增加類開始,不斷的增加新特性。虛函數(virtualfunction)、運算符重載(operatoroverloading)、多重繼承(multipleinheritance)、模板(template)、異常(exception)、RTTI、命名空間(namespace)逐漸被加入標準。1998年國際標準組織(ISO)頒布了C++程序設計語言的國際標準ISO\/IEC1988-1998。C++是具有國際標準的編程語言,通常稱作ANSI\/ISOC++。
1998年是C++標準委員會成立的第一年,以後每5年視實際需要更新一次標準。C++0x最終國際投票已於2011年8月10日結束,所有國家都投出了讚成票,C++0x已經毫無疑義地成為正式國際標準。先前被臨時命名為C++0x的新標準將被稱為C++2011。C++2011將取代現行的C++標準ISO\/IEC14882,它公開於1998年並於2003年更新,通稱C++98以及C++03。國際標準化組織於2011年9月1日出版發布ISO\/IEC14882:2011,名稱是:Informationtechnology--Programminglanguages--C++Edition:3。
組成部分
根據EffectiveC++第三版第一條款的描述,現在C++由以下四個“子語言”組成:
1、C子語言。C++支持C語言的幾乎全部功能,主要是c89的部分,在語法上與C語言僅有極微妙的差別(如括號表達式的左右值性,具體請參考C++標準文獻)。
2、麵向對象的C++語言。C++語言原本不具備麵向對象的設計功能,然而隨著麵向對象編程的概念的提出以及如Java等語言的發展成熟,C++語言也開發出了支持麵向對象功能的版本.
3、泛型編程語言。C++強大(但容易失控的)模板功能使它能在編譯期完成許多工作,從而大大提高運行期效率。
4、STL(C++標準模板庫,StandardTemplateLibrary)。隨著STL的不斷發展,它已經逐漸成為C++程序設計中不可或缺的部分,其效率可能比一般的native代碼低些,但是其安全性與規範性使它大受歡迎。
此外,包含在TR1等中的C++0x將實現的新功能在開發和測試中。
更多小說內容請訪問o o p . t w
發展階段
C++語言發展大概可以分為三個階段:
第一階段從80年代到1995年。這一階段C++語言基本上是傳統類型上的麵向對象語言,並且憑借著接近C語言的效率,在工業界使用的開發語言中占據了相當大份額;
第二階段從1995年到2000年,這一階段由於標準模板庫(STL)和後來的Boost等程序庫的出現,泛型程序設計在C++中占據了越來越多的比重性。當然,同時由於Java、C#等語言的出現和硬件價格的大規模下降,C++受到了一定的衝擊;
第三階段從2000年至今,由於以Loki、MPL等程序庫為代表的產生式編程和模板元編程的出現,C++出現了發展曆史上又一個新的高峰,這些新技術的出現以及和原有技術的融合,使C++已經成為當今主流程序設計語言中最複雜的一員。
設計原則
·C++設計成靜態類型、和C同樣高效且可移植的多用途程序設計語言。
·C++設計成直接的和廣泛的支援多種程序設計風格(程序化程序設計、資料抽象化、麵向對象程序設計、泛型程序設計)。
·C++設計成給程序設計者更多的選擇,即使可能導致程序設計者選擇錯誤。
·C++設計成儘可能與C兼容,籍此提供一個從C到C++的平滑過渡。
·C++避免平台限定或沒有普遍用途的特性。
·C++不使用會帶來額外開銷的特性。
·C++設計成無需複雜的程序設計環境。
出於保證語言的簡潔和運行高效等方麵的考慮,C++的很多特性都是以庫(如STL)或其他的形式提供的,而沒有直接添加到語言本身裡。關於此類話題,BjarneStroustrup的《C++語言的設計和演化》(1994)裡做了詳儘的陳述。
HelloWorld程序在使用兼容C89標準(也稱為ANSIC)的編譯器時,下麵這個程序顯示“Hello,world!”然後結束運行:
edulcni#
diov個這有該應不中++c在/\/\)diov(niamtni
\!dlrow,olleH"\(ftnirp
;)"\
;0nruter
)樣這麵下像該應更但,行運以可序程個這以所,集包的言語c是言語++c,碼代言語c是上以(
:的以可是也序程的麵下,時器譯編的老較比用使在
edulcni#
)(niamtni
;ldne<<"\!dlrow,olleH"\< ;0nruter :是當應,時器譯編的準標89++C容兼用使在 edulcni# ni