開啟主選單

求真百科

來自 網絡 的圖片

c plus plusC++(c plus plus)是一種計算機高級程序設計語言,由C語言擴展升級而產生,最早於1979年由本賈尼·斯特勞斯特盧普在AT&T貝爾工作室研發。C++擅長面向對象程序設計的同時,還可以進行基於過程的程序設計。C++幾乎可以創建任何類型的程序:遊戲、設備驅動程序、HPC、雲、桌面、嵌入式和移動應用等;甚至用於其他編程語言的庫和編譯器也使用C++編寫,使其越來越受到大眾關注。

目錄

基本介紹

C++(c plus plus)是一種計算機高級程序設計語言,由C語言擴展升級而產生,最早於1979年由本賈尼·斯特勞斯特盧普在AT&T貝爾工作室研發。

C++既可以進行C語言的過程化程序設計,又可以進行以抽象數據類型為特點的基於對象的程序設計,還可以進行以繼承和多態為特點的面向對象的程序設計。C++擅長面向對象程序設計的同時,還可以進行基於過程的程序設計。C++幾乎可以創建任何類型的程序:遊戲、設備驅動程序、HPC、雲、桌面、嵌入式和移動應用等。甚至用於其他編程語言的庫和編譯器也使用C++編寫。

C++擁有計算機[1]運行的實用性特徵,同時還致力於提高大規模程序的編程質量與程序設計語言的問題描述能力。

發展歷程

1970年,AT&T貝爾實驗室[2]的工作人員D.Ritchie和K.Thompson共同研發了C語言。研製C語言的初衷是用它編寫UNIX系統程序,因此,實際上C語言是UNIX的「副產品」。

1971年,瑞士聯邦技術學院N.Wirth教授發明了第一個結構化的編程語言Pascal。

20世紀70年代中期,本賈尼·斯特勞斯特盧普在劍橋大學計算機中心工作。斯特勞斯特盧普希望開發一個既要編程簡單、正確可靠,又要運行高效、可移植的計算機程序設計語言。而以C語言為背景,以Simula思想為基礎的語言,正好符合斯特勞斯特盧普的初衷和設想。

1979年,本賈尼·斯特勞斯特盧普到了AT&T貝爾實驗室,開始從事將C改良為帶類的C(C with classes)的工作。、1983年,該語言被正式命名為C++。

1985年、1990年和1994年,C++先後進行3次主要修訂。

C++的標準化工作於1989年開始,並成立了一個ANSI和ISO(International Standards Organization)國際標準化組織的聯合標準化委員會。

1994年1月25曰,聯合標準化委員會提出了第一個標準化草案。在該草案中,委員會在保持斯特勞斯特盧普最初定義的所有特徵的同時,還增加了部分新特徵。

在完成C++標準化的第一個草案後不久,亞歷山大·斯特潘諾夫(Alexander Stepanov)創建了標準模板庫(Standard Template Library,STL)。在通過了標準化第一個草案之後,聯合標準化委員會投票並通過了將STL包含到C++標準中的提議。STL對C++的擴展超出了C++的最初定義範圍。雖然在標準中增加STL是個很重要的決定,但也因此延緩了C++標準化的進程。

1997年11月14日,聯合標準化委員會通過了該標準的最終草案,

1998年,C++的ANSI/IS0標準被投入使用。

產品設計

編程開發

集成開發環境

截至2014年3月,C++共有12個主流集成開發環境。

Visual Studio(Visual C++)Dev C++C++Builder kDevelop

Anjuta Code::Blocks Visual Mingw Ideone

Eclipse CDT Compilr Code Lite Netbeans C++

編譯器

截至2014年3月,C++共有5款主流編譯器。

Ultimate++Digital Mars C-Free MinGW Tiny C Compiler

工作原理

C++語言的程序開發環境,為了方便測試,將調試環境做成了解釋型。即開發過程中,以解釋型的逐條語句執行方式來進行調試,以編譯型的脫離開發環境而啟動運行的方式來生成程序最終的執行代碼。

開發C++應用程序,需要經過編寫源程序、編譯、連接程序生成可執行程序、運行程序四個步驟。生成程序是指將源碼(C++語句)轉換成一個可以運行的應用程序的過程。如果程序編寫正確,那麼通常只需按一個功能鍵,即可完成該過程。

第一步對程序進行編譯,這需要用到編譯器(compiler)。編譯器將C++語句轉換成機器碼(也稱為目標碼);如果該步驟成功執行,下一步就是對程序進行鏈接,這需要用到鏈接器(linker)。鏈接器將編譯獲得機器碼與C++庫中的代碼進行合併。C++庫包含了執行某些常見任務的函數(「函數」是子程序的另一種稱呼)。例如,一個C++庫中包含標準的平方根函數sqrt,所以不必親自計算平方根。C++庫中還包含一些子程序,它們把數據發送到顯示器,並知道如何讀寫硬盤上的數據文件。

參考文獻