c++是c語言的繼承,它既可以進行c語言的過程化程式設計,又可以進行以抽象資料型別為特點的基於物件的程式設計,還可以進行以繼承和多型為特點的物件導向的程式設計。c++擅長物件導向程式設計的同時,還可以進行基於過程的程式設計,因而c++就適應的問題規模而論,大小由之。
c++不僅擁有計算機高效執行的實用性特徵,同時還致力於提高大規模程式的程式設計質量與程式語言的問題描述能力。
c++ 入門教程(開發文件)
發展歷程
世界上第一種計算機高階語言是誕生於2023年的fortran語言。之後出現了多種計算機高階語言。2023年,at&t的bell實驗室的d.ritchie和k.thompson共同發明了c語言。研製c語言的初衷是用它編寫unix系統程式,因此,它實際上是unix的「副產品」。它充分結合了組合語言和高階語言的優點,高效而靈活,又容易移植。
2023年,瑞士聯邦技術學院n.wirth教授發明了pascal語言。pascal語言語法嚴謹,層次分明,程式易寫,具有很強的可讀性,是第乙個結構化的程式語言。
20世紀70年代中期,bjarne stroustrup在劍橋大學計算機中心工作。他使用過simula和algol,接觸過c。他對simula的類體系感受頗深,對algol的結構也很有研究,深知執行效率的意義。既要程式設計簡單、正確可靠,又要執行高效、可移植,是bjarne stroustrup的初衷。以c為背景,以simula思想為基礎,正好符合他的設想。2023年,bjame sgoustrup到了bell實驗室,開始從事將c改良為帶類的c(c with classes)的工作。2023年該語言被正式命名為c++。自從c++被發明以來,它經歷了3次主要的修訂,每一次修訂都為c++增加了新的特徵並作了一些修改。第一次修訂是在2023年,第二次修訂是在2023年,而第三次修訂發生在c++的標準化過程中。在20世紀90年代早期,人們開始為c++建立乙個標準,並成立了乙個ansi和iso(intemational standards organization)國際標準化組織的聯合標準化委員會。該委員會在2023年1月25曰提出了第乙個標準化草案。在這個草案中,委員會在保持stroustrup最初定義的所有特徵的同時,還增加了一些新的特徵。
在完成c++標準化的第乙個草案後不久,發生了一件事情使得c++標準被極大地擴充套件了:alexander stepanov建立了標準模板庫(standard template library,stl)。stl不僅功能強大,同時非常優雅,然而,它也是非常龐大的。在通過了第乙個草案之後,委員會投票並通過了將stl包含到c++標準中的提議。stl對c++的擴充套件超出了c++的最初定義範圍。雖然在標準中增加stl是個很重要的決定,但也因此延緩了c++標準化的程序。
委員會於2023年11月14日通過了該標準的最終草案,2023年,c++的ansi/is0標準被投入使用。通常,這個版本的c++被認為是標準c++。所有的主流c++編譯器都支援這個版本的c++,包括微軟的visual c++和borland公司的c++builder。
語言特點
支援資料封裝和資料隱藏
在c++中,類是支援資料封裝的工具,物件則是資料封裝的實現。c++通過建立使用者定義類支援資料封裝和資料隱藏。
在物件導向的程式設計中,將資料和對該資料進行合法操作的函式封裝在一起作為乙個類的定義。物件被說明為具有乙個給定類的變數。每個給定類的物件包含這個類所規定的若干私有成員、公有成員及保護成員。完好定義的類一旦建立,就可看成完全封裝的實體,可以作為乙個整體單元使用。類的實際內部工作隱藏起來,使用完好定義的類的使用者不需要知道類是如何工作的,只要知道如何使用它即可。
支援繼承和重用
在c++現有類的基礎上可以宣告新型別,這就是繼承和重用的思想。通過繼承和重用可以更有效地組織程式結構,明確類間關係,並且充分利用已有的類來完成更複雜、深入的開發。新定義的類為子類,成為派生類。它可以從父類那裡繼承所有非私有的屬性和方法,作為自己的成員。
支援多型性
採用多型性為每個類指定表現行為。多型性形成由父類和它們的子類組成的乙個樹型結構。在這個樹中的每個子類可以接收乙個或多個具有相同名字的訊息。當乙個訊息被這個樹中乙個類的乙個物件接收時,這個物件動態地決定給予子類物件的訊息的某種用法。多型性的這一特性允許使用高階抽象。
繼承性和多型性的組合,可以輕易地生成一系列雖然類似但獨一無二的物件。由於繼承性,這些物件共享許多相似的特徵。由於多型性,乙個物件可有獨特的表現方式,而另乙個物件有另一種表現方式。
工作原理編輯
c++語言的程式因為要體現高效能,所以都是編譯型的。但其開發環境,為了方便測試,將除錯環境做成解釋型的。即開發過程中,以解釋型的逐條語句執行方式來進行除錯,以編譯型的脫離開發環境而啟動執行的方式來生成程式最終的執行**。[9]
生成程式是指將原始碼(c++語句)轉換成乙個可以執行的應用程式的過程。如果程式的編寫是正確的,那麼通常只需按乙個功能鍵,即可搞定這個過程。該過程實際上分成兩個步驟。
第一步是對程式進行編譯,這需要用到編譯器(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++語言在短短幾年內能流行。
更多精品課程:
7天玩轉雲伺服器
雲資料庫redis版使用教程
玩轉雲儲存物件儲存oss使用入門
阿里雲cdn使用教程
負載均衡入門與產品使用指南
阿里雲大學官網(
阿里雲大學 - 官方**,雲生態下的創新人才工場
)
c 入門教程 一
事前日常敲黑板 1 從現在開始 我寫的東西不一定完全是正確的,有些只是看了看理論,沒有實際驗證過,有些驗證過但是不同的編譯器會有不同的效果,所以建議有能力的話手動去試一下。我說的和書上寫的都不一定是對的,但是編譯器實際跑出來的結果在這個編譯器 假裝就是昨天那個軟體了 上就是對的。2 明天的內容可能會...
c 入門教程 八
事前日常敲黑板 1 事情從今天開始變得複雜了 需要用心了哦 首先,思考下面情形 輸入乙個數字,輸出這個數到0之間的所有數字 不要掙扎了,流程圖逃不掉的 仔細觀察一下,看一下和前面的if 的流程圖有什麼區別.答案 if的判斷框的兩個分支都是向下的,這裡面的乙個分支是向上的,也就是說如果判斷的結果滿足某...
c 入門教程 十
事前日常敲黑板 1 到上節結束,常用的迴圈和判斷算是結束了。每種判斷結構和迴圈結構都類似於流程圖中的某一塊特定方式的組合。前面說過,程式設計就是把我們的思路用電腦理解的語言告訴電腦。而流程圖就可以被看作是我們的思路。在流程圖中,我們可以把它們像拼積木一樣拼在一起來解決問題,在實際的程式,它們也是可以...