C語(yǔ)言與C++的區(qū)別_第1頁(yè)
C語(yǔ)言與C++的區(qū)別_第2頁(yè)
C語(yǔ)言與C++的區(qū)別_第3頁(yè)
C語(yǔ)言與C++的區(qū)別_第4頁(yè)
C語(yǔ)言與C++的區(qū)別_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、.c+幾乎完全兼容了c,但增加的特性差不多比整個(gè)c語(yǔ)言還多。c是一種簡(jiǎn)單的語(yǔ)言。它真正提供的只有有宏、指針、結(jié)構(gòu)、數(shù)組和函數(shù);而c+還有私有和保護(hù)型成員、函數(shù)重載、缺省參數(shù)、構(gòu)造和析構(gòu)函數(shù)、自定義操作符、內(nèi)聯(lián)函數(shù)、引用、友元、模板、異常、名字空間,等等。用c+比用c具有更寬廣的空間,因?yàn)樵O(shè)計(jì)時(shí)有更多的選擇可以考慮。此外,c+從安全性上遠(yuǎn)比c好,因?yàn)轭愋蜋z查更嚴(yán)格。c只是c+的一個(gè)子集,c+是c語(yǔ)言發(fā)展的一個(gè)優(yōu)秀的旁支。c是面向過(guò)程的語(yǔ)言。c+ 是在c基礎(chǔ)發(fā)展起來(lái)的面向?qū)ο蟮恼Z(yǔ)言,他幾乎集成了所有的c的東西。(當(dāng)然也剔除了很多c的缺陷,這個(gè)就要在長(zhǎng)期學(xué)習(xí)中慢慢體會(huì)了)。c語(yǔ)言是結(jié)構(gòu)化和模塊化的面

2、向過(guò)程的語(yǔ)言,c+語(yǔ)言是混合型面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言。c+語(yǔ)言是c語(yǔ)言的超集,也就是說(shuō)學(xué)會(huì)了c+,你其實(shí)已經(jīng)把c語(yǔ)言學(xué)會(huì)了。至于說(shuō)有什么區(qū)別,應(yīng)該說(shuō)是編程思想的區(qū)別吧,c是基于過(guò)程的,強(qiáng)調(diào)的是程序的功能,以函數(shù)(功能)為中心。c+是面向?qū)ο蟮?,?qiáng)調(diào)程序的分層、分類,以抽象為基礎(chǔ),進(jìn)行對(duì)象的定義與展示,即程序設(shè)計(jì)。具體說(shuō)來(lái)話長(zhǎng)。建議你學(xué)習(xí)c+的時(shí)候,學(xué)會(huì)用面向?qū)ο蟮姆绞剿伎己途幊獭,F(xiàn)在在開(kāi)發(fā)大項(xiàng)目的時(shí)候,都是應(yīng)用面向?qū)ο蟮姆治龊驮O(shè)計(jì)的技術(shù)。 c和c+的區(qū)別有什么?其他的東西都不需要多說(shuō),就象類,繼承,引用等,大家都知道。這里講的是調(diào)用編譯的區(qū)別.大家看win32 sdk的頭文件,總是可以看到 :

3、ifdef _cplusplus extern c endif ifdef _cplusplus endif 這個(gè)就是直接能夠體現(xiàn)實(shí)際編程時(shí)區(qū)別的地方。在win系列下,所有的win32 sdk提供的lib都是以c的形式存在的。當(dāng)然,c和c+同樣都支持c,stdcall,fastcall調(diào)用。為什么系統(tǒng)提供c編譯器編譯的lib而不是c+編譯的lib呢?這里其實(shí)就是c和c+編譯器不同的地方。所有的函數(shù)名稱只有在匯編編譯器下才最清楚。因?yàn)榻?jīng)匯編編譯器編譯的函數(shù)不經(jīng)過(guò)任何修飾。c 的編譯器編譯出來(lái)的函數(shù)名稱如果在匯編編譯器看來(lái)一個(gè)c調(diào)用將在函數(shù)名前家下劃線(_)。而一個(gè)stdcall的函數(shù)將是精品._

4、funcnumber的形式,如func(void)經(jīng)過(guò)編譯器后成為_(kāi)func0。一個(gè)fastcall調(diào)用的函數(shù)被編譯成func0。順便提一下,在win32的編譯器里不再需要pascall調(diào)用,vc6已經(jīng)取消了對(duì)pascall的支持. 光看c的編譯還不夠,看一下c+編譯器是怎么干的。在缺省情況下,一個(gè)c+的函數(shù)經(jīng)過(guò)c+編譯器后編譯出的函數(shù)名包括函數(shù)名,所屬的類,參數(shù)類型,調(diào)用約定,返回類型。而且更要命的是這么多的信息,只有函數(shù)名和類名在編譯后還依稀可見(jiàn),其他就是一長(zhǎng)串的abcd字母,根本就是無(wú)法辨認(rèn)其意義的。我們?cè)趘c手冊(cè)里可以看到一個(gè)例子: void _stdcall b:c(float);

5、- ?cbqagxmz 一個(gè)函數(shù)被編譯得連名字也不知道怎么樣了.這么一來(lái).如果sdk提供的是c+編譯器提供了lib.那么可以說(shuō)就無(wú)法編譯任何一個(gè)完整的win程序.更加不用說(shuō)什么混合語(yǔ)言編程. 現(xiàn)在,vc編譯器提供了個(gè)extern語(yǔ)句,當(dāng)出現(xiàn)extern c語(yǔ)句,括號(hào)里的函數(shù)將以c方式經(jīng)過(guò)編譯器.從而使提供庫(kù)程序方便那么點(diǎn)。c語(yǔ)言與c的區(qū)別有很多: 1,全新的程序程序思維,c語(yǔ)言是面向過(guò)程的,而c是面向?qū)ο蟮摹?2,精品.c語(yǔ)言有標(biāo)準(zhǔn)的函數(shù)庫(kù),它們松散的,只是把功能相同的函數(shù)放在一個(gè)頭文件中;而c+對(duì)于大多數(shù)的函數(shù)都是有集成的很緊密,特別是c語(yǔ)言中沒(méi)有的c+中的api是對(duì)window系統(tǒng)的大多數(shù)

6、api有機(jī)的組合,是一個(gè)集體。但你也可能單獨(dú)調(diào)用api。 3,特別是c+中的圖形處理,它和c語(yǔ)言的圖形有很大的區(qū)別。c語(yǔ)言中的圖形處理函數(shù)基本上是不能用在c+中的。c語(yǔ)言標(biāo)準(zhǔn)中不包括圖形處理。 4,c和c+中都有結(jié)構(gòu)的概念,但是在c語(yǔ)言中結(jié)構(gòu)只有成員變量,而沒(méi)成員方法,而在c+中結(jié)構(gòu)中,它可以有自己的成員變量和成員函數(shù)。但是在c語(yǔ)言中結(jié)構(gòu)的成員是公共的,什么想訪問(wèn)它的都可以訪問(wèn);而在vc+中它沒(méi)有加限定符的為私有的精品.。 4,c語(yǔ)言可以寫(xiě)很多方面的程序,但是c+可以寫(xiě)得更多更好,c+可以寫(xiě)基于dos的程序,寫(xiě)dll,寫(xiě)控件,寫(xiě)系統(tǒng)。 5,c語(yǔ)言對(duì)程序的文件的組織是松散的,幾乎是全要程序處理;

7、而c+對(duì)文件的組織是以工程,各文件分類明確。 6,c+中的ide很智能,和vb一樣,有的功能可能比vb還強(qiáng)。 7,c+對(duì)可以自動(dòng)生成你想要的程序結(jié)構(gòu)使你可以省很多時(shí)間。有很多可用工具如加入mfc中的類的時(shí)候,加入變量的時(shí)候等等。 8,c+中的附加工具也有很多,可以進(jìn)行系統(tǒng)的分析,可以查看api;可以查看控件。 9,調(diào)試功能強(qiáng)大,并且方法多樣。 c語(yǔ)言:20世紀(jì)70年代早期,貝爾實(shí)驗(yàn)室的dennis ritchie致力于開(kāi)發(fā)unix操作系統(tǒng)。為完成這項(xiàng)工作,ritchie需要一種語(yǔ)言,它必須簡(jiǎn)潔,能夠生成簡(jiǎn)潔、快速的程序,并能有效地控制硬件。當(dāng)時(shí)應(yīng)用的語(yǔ)言是匯編語(yǔ)言,它依賴于特定的機(jī)器,移植性非

8、常差。而unix需要運(yùn)行在不同的機(jī)器上,也就是說(shuō)它是一種高級(jí)語(yǔ)言,不需要針對(duì)特定的硬件。一種被稱為編譯器的特殊程序?qū)⒏呒?jí)語(yǔ)言翻譯成特定的計(jì)算機(jī)的內(nèi)部語(yǔ)言。richie希望有一種語(yǔ)言能將低級(jí)語(yǔ)言的效率、硬件訪問(wèn)能力和高級(jí)語(yǔ)言的通用性、可移植性融合在一起,于是他在舊語(yǔ)言的基礎(chǔ)上開(kāi)發(fā)了c語(yǔ)言。 c語(yǔ)言:c+在c語(yǔ)言的基礎(chǔ)上移植了新的編程理念,因此我們首先來(lái)看一看c所遵循的舊的理念。一般來(lái)說(shuō),計(jì)算機(jī)語(yǔ)言要處理兩個(gè)概念-數(shù)據(jù)和算法。精品.數(shù)據(jù)是程序使用和處理的信息,而算法是程序使用的方法。c語(yǔ)言和當(dāng)前最流行的語(yǔ)言一樣,在最初面世時(shí)也是過(guò)程性(procedural)語(yǔ)言,這意味著它強(qiáng)調(diào)的是編程的算法方面。

9、 從概念上講,過(guò)程化編程首先要確定計(jì)算機(jī)應(yīng)采取的操作,然后使用編程語(yǔ)言來(lái)實(shí)現(xiàn)這些操作。 隨著程序規(guī)模的擴(kuò)大,早期的程序語(yǔ)言(如frotran和basic)都會(huì)遇到組織方面的問(wèn)題,如經(jīng)常使用分支等。使人們不可能通過(guò)閱讀程序來(lái)理解它。為了解決這個(gè)問(wèn)題,計(jì)算機(jī)科學(xué)家開(kāi)發(fā)了一種更有序的編程方法-結(jié)構(gòu)化編程(structured programming)。c語(yǔ)言就具有使用這種方法的特性。 另一個(gè)新的原則是自頂向下(top-down)的設(shè)計(jì)。在c語(yǔ)言中,其理念是將大型的程序分解成小型、便于管理的任務(wù),如果其中的一項(xiàng)仍然過(guò)大,則繼續(xù)分解。c語(yǔ)言的這種設(shè)計(jì)有助于使用這種方法,它鼓勵(lì)程序員開(kāi)發(fā)程序單元(稱為函數(shù)

10、)來(lái)表示各個(gè)任務(wù)模塊。 由于c+在c語(yǔ)言的基礎(chǔ)上移植了新的編程理念,因此我們首先來(lái)看一看c所遵循的舊的理念。一般來(lái)說(shuō),計(jì)算機(jī)語(yǔ)言要處理兩個(gè)概念-數(shù)據(jù)和算法。數(shù)據(jù)是程序使用和處理的信息,而算法是程序使用的方法。c語(yǔ)言和當(dāng)前最流行的語(yǔ)言一樣,在最初面世時(shí)也是過(guò)程性(procedural)語(yǔ)言,這意味著它強(qiáng)調(diào)的是編程的算法方面。 從概念上講,過(guò)程化編程首先要確定計(jì)算機(jī)應(yīng)采取的操作,然后使用編程語(yǔ)言來(lái)實(shí)現(xiàn)這些操作。 和c語(yǔ)言一樣,c+也是在貝爾實(shí)驗(yàn)室誕生的,bjarne stroustrup于20世紀(jì)80年代在這里開(kāi)發(fā)出了這種語(yǔ)言。 c+的oop方面是受到了計(jì)算機(jī)模擬語(yǔ)言simula67的啟發(fā)。stroustrup精品.加入了oop特性和對(duì)c的通用編程支持,但并沒(méi)有c的組件作很大的改動(dòng)。因此,c+是語(yǔ)言的超集,這意味著任何有效的c

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論