淺談C和C++異同_第1頁
淺談C和C++異同_第2頁
淺談C和C++異同_第3頁
淺談C和C++異同_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、    淺談c和c+異同    董昌源+劉疆+王仁鶴摘 要:the c+ programming language ,即為c+語言,c+語言是c語言的繼承,在c語言的基礎(chǔ)上,又對c語言的過程化程序設(shè)計進行了優(yōu)化,既可以使用以抽象數(shù)據(jù)類型為特點的基于對象的程序設(shè)計,又可以使用以繼承和多態(tài)為特點的面向?qū)ο蟮某绦蛟O(shè)計。c+語言不但完美地繼承了父類的c語言,還可以進行基于面向?qū)ο筮^程化的程序設(shè)計,因此,c+語言不僅擁有計算機高效運行的實用性特征,而且還具有提高大規(guī)模程序的編程質(zhì)量與程序設(shè)計語言的問題描述的能力。關(guān)鍵詞:c;c+;面向?qū)ο笤?0世紀(jì)70年代中期,經(jīng)

2、歷了第一種計算機高級語言誕生事件的bjarne stroustrup在使用simula、algol中,受到了simula的類體系感、algol的結(jié)構(gòu)的啟發(fā)后,想要實現(xiàn)一種編程簡單、正確可靠、運行高效、可移植性強的編程軟件,于是,他以c為背景,以simula框架的設(shè)計思路為新軟件的框架思想。1979年,bjame sgoustrup到了bell實驗室,開始將c改良為具有獨特類框架的cwc(c with classes)。1983年,該語言的開發(fā)完畢,獲得巨大的成功。于是這個新興語言被命名為c+。在那個時候的c+中,人們對類沒有什么具體的概念,只知道類是可以支持?jǐn)?shù)據(jù)封裝的工具,對象則是數(shù)據(jù)封裝的實

3、現(xiàn)。而現(xiàn)在,面向?qū)ο蟮某绦蛟O(shè)計是將數(shù)據(jù)和對該數(shù)據(jù)進行合法操作的一系列函數(shù)方法封裝在一起,這就是一個類。成員對象是被定義在這個類中的一個變量,每個類中可以包含若干私有成員、公有成員及保護成員。當(dāng)一個類被定義完畢,所有函數(shù)方法均封裝在其內(nèi)部,這個類就可以看成一個完整的實體單元使用。類內(nèi)部的工作方法被完美地隱藏起來,使用此類的用戶是看不到類是如何工作的,想要修改也沒有辦法,這就是類的封裝特點。c+語言可以在現(xiàn)有的類的基礎(chǔ)上聲明新的類,新的類可以完美調(diào)用其聲明的類中的函數(shù),他可以在父類那里繼承所有非私有的屬性和方法,作為自己的成員,成為原有類的派生類,我們將被使用的那個類稱為父類,而這個新的類就是子類

4、,這就是繼承的思想。通過繼承可以更有效地組織程序結(jié)構(gòu),明確類間關(guān)系,并且充分利用已有的類來完成更復(fù)雜、更深入的程序開發(fā),這就是類的繼承特點。c+語言的執(zhí)行過程中,對于多態(tài)的理解在同一操作作用于不同的對象,可以有不同的解釋,也會產(chǎn)生不同的執(zhí)行結(jié)果。在運行時,可以通過指向基類的指針來調(diào)用實現(xiàn)派生類中的方法。編譯時的多態(tài)性是通過重載來實現(xiàn)的。對于非虛的成員來說,系統(tǒng)在編譯時,根據(jù)傳遞的參數(shù)、返回的類型等信息決定實現(xiàn)何種操作。運行時的多態(tài)性就是指直到系統(tǒng)運行時,才根據(jù)實際情況決定實現(xiàn)何種操作。c+語言的程序開發(fā)中為了方便測試,通過使用解釋型的執(zhí)行方式,使代碼的逐條語句依次執(zhí)行,以編譯型的啟動運行的方式

5、來生成程序最終的執(zhí)行代碼。在c+語言所修飾的類中,某些對象類所代表的事物或者概念都可以是抽象的。在使用private修飾數(shù)據(jù)或者函數(shù)的時候,只有在類中加入這個數(shù)據(jù)或函數(shù)的聲明才被允許使用。類在與外部連接時,如果使用的是public修飾詞,則本類與其他類都可以調(diào)用。在抽象的語言中,什么是對象是一個老生常談的話題。對象在筆者看來,就是主對客觀事物的某個實體進行描述所形成的一個實例化的代號,它可以作為一個單位,可以作為一個系統(tǒng),這些元素共同組成了系屬性,屬性和服務(wù)方法是構(gòu)成對象的兩種要素,屬性的實質(zhì)是一個存儲數(shù)據(jù)的數(shù)據(jù)項,服務(wù)的實質(zhì)是一個操作方法序列。程序生成是編程平臺將源碼c+代碼轉(zhuǎn)換成計算機可以

6、識別的計算機語言,并將這種語言翻譯變成可以運行的應(yīng)用程序的過程。如果程序代碼不出現(xiàn)問題,編譯的結(jié)果也是沒有error,那么通常一個debug功能鍵即可搞定這個過程。但在計算機運行的過程中該過程實際上分成兩個步驟:第一步:是對程序使用編譯器compiler進行編譯,編譯器將c+語句轉(zhuǎn)換成機器碼。第二步:使用鏈接器linker對程序進行鏈接,鏈接器將編譯獲得機器碼與c+庫中的代碼進行匹配,如果查詢到了相關(guān)的匹配語句,計算機則執(zhí)行這段程序,并輸出結(jié)果并通過機器碼返還給我們,計算機再通過解讀變成我們能看懂的東西。關(guān)鍵字(keyword)是整個語言范圍內(nèi)預(yù)先保留的標(biāo)識符,又稱為“保留字”,就是已被此類語

7、言本身使用,不能作其他用途使用的字。例如,關(guān)鍵字不能用作變量名、函數(shù)名等標(biāo)識符,在c的內(nèi)庫中由iso標(biāo)準(zhǔn)定義的c語言關(guān)鍵字共32個。而在c+語言中,關(guān)鍵字的含義和范圍又更上一層樓,每個c+關(guān)鍵字都有特殊的含義。關(guān)鍵字通過預(yù)處理后,c+的內(nèi)庫中由iso標(biāo)準(zhǔn)定義的c+語言的63個關(guān)鍵字在preprocessing-token區(qū)中出來被取出來,標(biāo)記為處理記號,其余的標(biāo)識符則作為記號(token),用于對象、函數(shù)、類型、命名空間的聲??偟膩碚f,c語言是結(jié)構(gòu)化和模塊化的面向過程的語言,c+語言是面向?qū)ο蟮某绦蛟O(shè)計語言。c+語言是c語言的超集,類似于在高中的時候?qū)W會了高中數(shù)學(xué),那么小學(xué)、初中數(shù)學(xué)也就不成問題了。在編程思想上略有區(qū)別,c語言強調(diào)程序的功能以及程序是否是是基于過程和以函數(shù)為中心的,而c+語言是面向?qū)ο蟮?,注重程序?nèi)部的分層、分類,類與類之間的關(guān)系,以及使用到面向?qū)ο蟮姆绞剿伎己途幊谭椒?,希望大家引起注意。參考文獻:1 錢能. c+程序

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論