




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、電子科技大學(xué)計算機(jī)學(xué)院,C+程序設(shè)計語言,黃迪明,1,第一章,C+入門,一、面向?qū)ο蟮姆椒ㄊ窃谟嬎銠C(jī)語言發(fā)展過程中產(chǎn)生的。 早期:機(jī)器語言、匯編語言 50年代中期:FORTRAN語言引進(jìn)了許多現(xiàn)代仍然使用的程序設(shè)計概念。 50年代后期:ALGOL60提出塊結(jié)構(gòu)的思想。 60年代:SIMULA67首先提出對象和類的概念,并支持類的繼承,是面向?qū)ο笳Z言的鼻祖 70年代:ADA不能全面地支持繼承,稱為基于對象的語言。, 1.1 面向?qū)ο蟮挠蓙砗桶l(fā)展,后來出現(xiàn)的Smalltalk是最有影響的面向?qū)ο蟮恼Z言之一。 80年代中后期以后,隨著面向?qū)ο蟮某绦蛟O(shè)計語言的廣泛應(yīng)用,出現(xiàn)了更多的面向?qū)ο蟮恼Z言。,面
2、向?qū)ο蟮恼Z言可分為以下兩類: 1、開發(fā)全新的面向?qū)ο蟮恼Z言 ObjectC Eiffel Smalltalk80 2、對傳統(tǒng)語言進(jìn)行面向?qū)ο蟮臄U(kuò)展,稱為混合型語言,其代表有C+語言。,C+,C,C+ 語言具有C語言的豐富的應(yīng)用基礎(chǔ)和開發(fā)環(huán)境的支持,對于已經(jīng)掌握C語言的人講,更易學(xué)易普及。,二、從C到C+ C語言是貝爾實驗室為DEC公司開發(fā)PDP 系列計算機(jī)操作系統(tǒng)時研制的。 C作為UNIX操作系統(tǒng)的開發(fā)語言而廣為應(yīng)用 和流行。1989年制定為ANSI C標(biāo)準(zhǔn)。,1、語言簡潔、緊湊,使用方便、靈活。 2、運算符和數(shù)據(jù)類型豐富。 3、訪問內(nèi)存地址、寄存器、進(jìn)行位操作, 具有匯編語言的功能。 4、生
3、成的目標(biāo)代碼質(zhì)量高、程序運行效率高。,C語言的獨有特點是:,局限: 1、對類型的檢查機(jī)制相對較弱、程序中的一些錯誤不能在編譯時發(fā)現(xiàn); 2、無支持代碼重用的語言結(jié)構(gòu); 3、當(dāng)程序規(guī)模達(dá)到一定的程度時,難以控制程序的復(fù)雜性;,為滿足管理程序復(fù)雜性需要,1980年,貝爾實驗室對C進(jìn)行了改進(jìn)和擴(kuò)充:,“帶類的C”,C,1983年取名為C+,后經(jīng)過三次修訂。 1994年制定了ANSI C+標(biāo)準(zhǔn)的草案。,1、C+是C的擴(kuò)展,C是C+的子集,C+ 包括C的全部特征、屬性和優(yōu)點。同時,增加了對面向?qū)ο缶幊痰耐耆С帧?2、與C 一致, C+程序結(jié)構(gòu)采用函數(shù)驅(qū)動機(jī)制實現(xiàn)。 3、C+實現(xiàn)了類的封裝,數(shù)據(jù)隱藏、繼承
4、及多態(tài),使其代碼可重用并容易維護(hù)。 4、C+是一門高效使用的程序設(shè)計語言,既可進(jìn)行過程化程序設(shè)計,又可進(jìn)行面向?qū)ο蟪绦蛟O(shè)計。,C+的特點,在面向過程的程序設(shè)計中,程序是處理數(shù)據(jù)的一系列過程。過程(或函數(shù))定義為實現(xiàn)特定功能的一組指令。 其主要設(shè)計思想是功能分解并逐步求精。數(shù)據(jù)與程序過程分開存儲,編程的主要技巧在于關(guān)注模塊之間的調(diào)用關(guān)系及數(shù)據(jù)的變化。,1.2 面向過程的程序設(shè)計,1、當(dāng)數(shù)據(jù)量增大時,數(shù)據(jù)與處理這些數(shù)據(jù)的方法之間的分離使程序變得越來越難以理解。 2、相對于老問題的新方法都要帶來額外的開銷,程序的可重用性小。,面向過程程序設(shè)計的主要缺點,面向?qū)ο蟪绦蛟O(shè)計 OOP (Object-Or
5、iented Programming)的三要素: 對象、類和繼承 面向?qū)ο蟪绦蛟O(shè)計的實現(xiàn)需要: 封裝和數(shù)據(jù)隱藏技術(shù) 繼承和多態(tài)性技術(shù),1.3 面向?qū)ο蟪绦蛟O(shè)計,1、封裝和數(shù)據(jù)隱藏 什么是對象? 概念上:在問題空間中,將客觀世界的實體稱為對象。對象可以是人、物、事件、規(guī)則、概念等。 例如:開發(fā)一個商品銷售系統(tǒng)。 實現(xiàn)上:把數(shù)據(jù)和處理數(shù)據(jù)的過程(操作或方法)當(dāng)成一個整體,這個封裝體就稱為對象。,對象的模型結(jié)構(gòu),例如:電腦裝配聲卡,早點銷售點 無須知道封裝體內(nèi)部是如何工作就能使用的 思想稱為數(shù)據(jù)隱藏。 對象實現(xiàn)了信息隱藏; 對象與外部通過操作接口聯(lián)系,操作接口提 供了對象的功能,操作的具體實現(xiàn)外部是
6、不可 見的。 對象之間是通過消息傳遞信息。 對象是由特定的類創(chuàng)造的,什么是類? 類是創(chuàng)建對象的樣板,它包含著所創(chuàng)建對象 的狀態(tài)描述和方法的定義。,由一個特定的類所創(chuàng)建的的對象也稱為 這個類的實例。 一個類的所有對象都有相同的數(shù)據(jù)結(jié)構(gòu), 并且共享相同的實現(xiàn)操作的代碼,而各個對 象又有具體的不同的狀態(tài)。類和對象類似于 面向過程語言中數(shù)據(jù)類型和變量。 例如:學(xué)生類和某個學(xué)生對象。 2、繼承和重用 制造一種新型號的電視機(jī)可以有兩種選擇: 1)從草圖開始重新設(shè)計 2)對現(xiàn)有型號加以改進(jìn)(繼承和重用),C+采用繼承機(jī)制支持重用,不僅可重用具有特定功能的類,而且繼承可以由已有的類 創(chuàng)造新的類。 新類共享已有
7、類的屬性,自己還具有額外 添加的屬性,新類是從已有類派生的,稱為派 生類或子類,已有類稱為父類或基類。 在客觀世界中,存在著整體和部分的關(guān)系、 一般和特殊的關(guān)系,繼承將后者模型化。 汽車類, 各類汽車 昆蟲類, 各類昆蟲,3、多態(tài)性 封裝性、繼承性、多態(tài)性是構(gòu)成面向?qū)ο?程序設(shè)計的三大特征。 封裝性是基礎(chǔ) 繼承性是關(guān)鍵 多態(tài)性是補(bǔ)充 什么是多態(tài)性? 多態(tài)是指一個名字有多種語義,或一個相同界面有多種實現(xiàn); 或是指發(fā)出同樣的消息被不同類型的對象 接受而導(dǎo)致完全不同的行為。即對象根據(jù)所接收到的消息做出相應(yīng)的操作。,例如:在學(xué)籍管理系統(tǒng)中,學(xué)生類(基類) 計算成績的操作,中學(xué)生類(派生類) 計算成績的
8、操作,大學(xué)生類(派生類) 計算成績的操作,又如:在繪圖系統(tǒng)中使用的多態(tài)性。 函數(shù)重載和運算符重載表現(xiàn)了最簡單的多態(tài)性。 函數(shù)重載: Void f(int,int,char); Void f(char,float); Void f(int,int); Void f(int,float); 運算符重載: 為運算符+ - * / 等賦以新的含義,以 實現(xiàn)類對象的運算。,1.4 程序開發(fā)過程,例1: /* /*ch1.1.cpp* /* # include void main( ) cout “I am a student.n”; ,1.5 最簡單的程序,運行結(jié)果為: I am a student.,
9、例 2: /* ch1.2.cpp * #include void main( ) int a,b,result; cout a b; result=3*a-2*b+1; cout “Result is ” resultendl; ,C+程序是由函數(shù)構(gòu)成的,由一個主函數(shù)和若干個函數(shù)構(gòu)成。 C+程序是函數(shù)驅(qū)動的。例3: /*ch1.3.cpp* #include #include double max(doubl x, doubl y); void main( ) double a, b, c; cout ab; c=max(a,b); cout “The squart of maximum=”sqrt( 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T型連接高強(qiáng)螺栓受拉承載力設(shè)計方法及可靠性研究
- 基于TPACK理論的師范生人工智能素養(yǎng)現(xiàn)狀及培養(yǎng)策略研究
- 編制會議材料培訓(xùn)
- 貓和老鼠手繪課件設(shè)計指南
- 體外診斷試劑性能指標(biāo)
- 領(lǐng)航職業(yè)英語課件
- 顱腦CTA技術(shù)課件
- 預(yù)防踩踏事故班會課件
- 預(yù)防毒品安全知識課件
- 預(yù)防小學(xué)生溺水的課件
- 2025全員安全生產(chǎn)責(zé)任制范本
- 林業(yè)行政執(zhí)法培訓(xùn)
- 電大考試試題及答案商法
- 廣西壯族自治區(qū)柳州市上進(jìn)聯(lián)考2024-2025學(xué)年高一下學(xué)期6月期末聯(lián)合考試數(shù)學(xué)試題(含答案)
- 八年級暑假前家長會課件
- 福建省南平市2024-2025學(xué)年八年級下學(xué)期期末考試數(shù)學(xué)試卷(含答案)
- 2025年河南省高考地理試卷真題(含答案)
- 2025屆廣東省惠州惠城區(qū)五校聯(lián)考英語八下期末檢測試題含答案
- 工廠績效計件方案(3篇)
- 2025年湖南省中考?xì)v史試卷真題(含答案)
- 高中英語必背3500單詞表完整版
評論
0/150
提交評論