C++ 入門教程(開發文檔)

C++是C語言的繼承,它既能夠進行C語言的過程化程序設計,又能夠進行以抽象數據類型爲特色的基於對象的程序設計,還能夠進行以繼承和多態爲特色的面向對象的程序設計。C++擅長面向對象程序設計的同時,還能夠進行基於過程的程序設計,於是C++就適應的問題規模而論,大小由之。c++

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

教程連接:C++ 入門教程(開發文檔)數據結構

發展歷程:編程語言

世界上第一種計算機高級語言是誕生於1954年的FORTRAN語言。以後出現了多種計算機高級語言。1970年,AT&T的Bell實驗室的D.Ritchie和K.Thompson共同發明了C語言。研製C語言的初衷是用它編寫UNIX系統程序,所以,它其實是UNIX的「副產品」。它充分結合了彙編語言和高級語言的優勢,高效而靈活,又容易移植。
1971年,瑞士聯邦技術學院N.Wirth教授發明了Pascal語言。Pascal語言語法嚴謹,井井有條,程序易寫,具備很強的可讀性,是第一個結構化的編程語言。
20世紀70年代中期,Bjarne Stroustrup在劍橋大學計算機中心工做。他使用過Simula和ALGOL,接觸過C。他對Simula的類體系感覺頗深,對ALGOL的結構也頗有研究,深知運行效率的意義。既要編程簡單、正確可靠,又要運行高效、可移植,是Bjarne Stroustrup的初衷。以C爲背景,以Simula思想爲基礎,正好符合他的設想。1979年,Bjame Sgoustrup到了Bell實驗室,開始從事將C改良爲帶類的C(C with classes)的工做。1983年該語言被正式命名爲C++。自從C++被髮明以來,它經歷了3次主要的修訂,每一次修訂都爲C++增長了新的特徵並做了一些修改。第一次修訂是在1985年,第二次修訂是在1990年,而第三次修訂發生在c++的標準化過程當中。在20世紀90年代早期,人們開始爲C++創建一個標準,併成立了一個ANSI和ISO(Intemational Standards Organization)國際標準化組織的聯合標準化委員會。該委員會在1994年1月25曰提出了第一個標準化草案。在這個草案中,委員會在保持Stroustrup最初定義的全部特徵的同時,還增長了一些新的特徵。
在完成C++標準化的第一個草案後不久,發生了一件事情使得C++標準被極大地擴展了:Alexander stepanov建立了標準模板庫(Standard Template Library,STL)。STL不只功能強大,同時很是優雅,然而,它也是很是龐大的。在經過了第一個草案以後,委員會投票並經過了將STL包含到C++標準中的提議。STL對C++的擴展超出了C++的最初定義範圍。雖然在標準中增長STL是個很重要的決定,但也所以延緩了C++標準化的進程。函數

委員會於1997年11月14日經過了該標準的最終草案,1998年,C++的ANSI/IS0標準被投入使用。一般,這個版本的C++被認爲是標準C++。全部的主流C++編譯器都支持這個版本的C++,包括微軟的Visual C++和Borland公司的C++Builder。工具

語言特色:性能

支持數據封裝和數據隱藏
在C++中,類是支持數據封裝的工具,對象則是數據封裝的實現。C++經過創建用戶定義類支持數據封裝和數據隱藏。
在面向對象的程序設計中,將數據和對該數據進行合法操做的函數封裝在一塊兒做爲一個類的定義。對象被說明爲具備一個給定類的變量。每一個給定類的對象包含這個類所規定的若干私有成員、公有成員及保護成員。無缺定義的類一旦創建,就可當作徹底封裝的實體,能夠做爲一個總體單元使用。類的實際內部工做隱藏起來,使用無缺定義的類的用戶不須要知道類是如何工做的,只要知道如何使用它便可。測試

支持繼承和重用
在C++現有類的基礎上能夠聲明新類型,這就是繼承和重用的思想。經過繼承和重用能夠更有效地組織程序結構,明確類間關係,而且充分利用已有的類來完成更復雜、深刻的開發。新定義的類爲子類,成爲派生類。它能夠從父類那裏繼承全部非私有的屬性和方法,做爲本身的成員。
支持多態性
採用多態性爲每一個類指定表現行爲。多態性造成由父類和它們的子類組成的一個樹型結構。在這個樹中的每一個子類能夠接收一個或多個具備相同名字的消息。當一個消息被這個樹中一個類的一個對象接收時,這個對象動態地決定給予子類對象的消息的某種用法。多態性的這一特性容許使用高級抽象。
繼承性和多態性的組合,能夠輕易地生成一系列雖然相似但獨一無二的對象。因爲繼承性,這些對象共享許多類似的特徵。因爲多態性,一個對象可有獨特的表現方式,而另外一個對象有另外一種表現方式。網站

工做原理編輯
C++語言的程序由於要體現高性能,因此都是編譯型的。但其開發環境,爲了方便測試,將調試環境作成解釋型的。即開發過程當中,以解釋型的逐條語句執行方式來進行調試,以編譯型的脫離開發環境而啓動運行的方式來生成程序最終的執行代碼。[9] 
生成程序是指將源碼(C++語句)轉換成一個能夠運行的應用程序的過程。若是程序的編寫是正確的,那麼一般只需按一個功能鍵,便可搞定這個過程。該過程實際上分紅兩個步驟。ui

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

語言評價:

C++是在C語言的基礎上開發的一種面向對象編程語言,應用很是普遍。經常使用於系統開發,引擎開發等應用領域,支持類、封裝、繼承、多態等特性。C++語言靈活,運算符的數據結構豐富、具備結構化控制語句、程序執行效率高,並且同時具備高級語言與彙編語言的優勢。

C++語言是對C語言的擴充,從Simula中吸收了類,從ALGOL語言中吸收了運算符的一名多用、引用和在分程序中任何位置都可說明變量,綜合了Ada語言的類屬和Clu語言的模塊特色,造成了抽象類,從Ada Clu和ML等語言吸收了異常處理,從BCPL語言中吸收了用//表示註釋C++語言保持了C語言的緊湊靈活、高效以及易於移植性強等優勢,它對數據抽象的支持主要在於類概念和機制,對面向對象風範的支持主要經過虛擬機制函數因C++語言既有數據抽象和麪向對象能力,運行性能高,加上C語言的普及,而從C語言到C++語言的過渡較爲平滑,以及C++語言與C語言的兼容程度可以使數量巨大的C語言程序能方便地在C++語言環境中複用,使C++語言在短短几年內能流行。

更多精品課程:

阿里雲大學官網(阿里雲大學 - 官方網站,雲生態下的創新人才工場

相關文章
相關標籤/搜索