資源描述:
《C++程序設(shè)計語言-C++入門》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、電子科技大學(xué)計算機學(xué)院C++程序設(shè)計語言黃迪明1第一章C++入門一、面向?qū)ο蟮姆椒ㄊ窃谟嬎銠C語言發(fā)展過程中產(chǎn)生的。早期:機器語言、匯編語言50年代中期:FORTRAN語言引進了許多現(xiàn)代仍然使用的程序設(shè)計概念。50年代后期:ALGOL60提出塊結(jié)構(gòu)的思想。60年代:SIMULA67首先提出對象和類的概念,并支持類的繼承,是面向?qū)ο笳Z言的鼻祖70年代:ADA不能全面地支持繼承,稱為基于對象的語言?!?.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言O(shè)bject—CEiffelSmalltalk802、對傳統(tǒng)語言進行面向?qū)ο蟮臄U展,稱為混合型語言,其代表有C++語言。增加面向?qū)ο蟪绦蛟O(shè)計的支持支持傳統(tǒng)的面向過程的程序設(shè)計C++CC++語言具有C語言的豐富的應(yīng)用基礎(chǔ)和開發(fā)環(huán)境的支持,對于已經(jīng)掌握C語言的人講,更易學(xué)易普及。二、從C到C++C語言是貝爾實驗室為DEC公司開發(fā)PDP系列計算機操作系統(tǒng)時研制的。C作為UNIX操作系統(tǒng)的開發(fā)語言而廣為應(yīng)用和流行。1989年制定為ANSIC標(biāo)準(zhǔn)。1、語言簡潔、緊湊,使用方便、靈活。2、運算符和數(shù)據(jù)類型豐富。3、
3、訪問內(nèi)存地址、寄存器、進行位操作,具有匯編語言的功能。4、生成的目標(biāo)代碼質(zhì)量高、程序運行效率高。C語言的獨有特點是:局限:1、對類型的檢查機制相對較弱、程序中的一些錯誤不能在編譯時發(fā)現(xiàn);2、無支持代碼重用的語言結(jié)構(gòu);3、當(dāng)程序規(guī)模達(dá)到一定的程度時,難以控制程序的復(fù)雜性;為滿足管理程序復(fù)雜性需要,1980年,貝爾實驗室對C進行了改進和擴充:“帶類的C”C1983年取名為C++,后經(jīng)過三次修訂。1994年制定了ANSIC++標(biāo)準(zhǔn)的草案。1、C++是C的擴展,C是C++的子集,C++包括C的全部特征、屬性和優(yōu)點。同時,增加了對面向?qū)ο缶幊痰耐耆С帧?、與C一致,C+
4、+程序結(jié)構(gòu)采用函數(shù)驅(qū)動機制實現(xiàn)。3、C++實現(xiàn)了類的封裝,數(shù)據(jù)隱藏、繼承及多態(tài),使其代碼可重用并容易維護。4、C++是一門高效使用的程序設(shè)計語言,既可進行過程化程序設(shè)計,又可進行面向?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、相對于老問題的新方法都要帶來額外的開銷,
5、程序的可重用性小。面向過程程序設(shè)計的主要缺點面向?qū)ο蟪绦蛟O(shè)計OOP(Object-OrientedProgramming)的三要素:對象、類和繼承面向?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)成一個整體,這個封裝體就稱為對象。數(shù)據(jù)1…….數(shù)據(jù)n操作1…….操作n狀態(tài)(數(shù)據(jù)結(jié)構(gòu)和值)方法對象的模型結(jié)構(gòu)例如:電腦裝配聲卡,早點銷售點無須知道
6、封裝體內(nèi)部是如何工作就能使用的思想稱為數(shù)據(jù)隱藏。對象實現(xiàn)了信息隱藏;對象與外部通過操作接口聯(lián)系,操作接口提供了對象的功能,操作的具體實現(xiàn)外部是不可見的。對象之間是通過消息傳遞信息。對象是由特定的類創(chuàng)造的,什么是類?類是創(chuàng)建對象的樣板,它包含著所創(chuàng)建對象的狀態(tài)描述和方法的定義。由一個特定的類所創(chuàng)建的的對象也稱為這個類的實例。一個類的所有對象都有相同的數(shù)據(jù)結(jié)構(gòu),并且共享相同的實現(xiàn)操作的代碼,而各個對象又有具體的不同的狀態(tài)。類和對象類似于面向過程語言中數(shù)據(jù)類型和變量。例如:學(xué)生類和某個學(xué)生對象。2、繼承和重用制造一種新型號的電視機可以有兩種選擇:1)從草圖開始重新設(shè)計
7、2)對現(xiàn)有型號加以改進(繼承和重用)C++采用繼承機制支持重用,不僅可重用具有特定功能的類,而且繼承可以由已有的類創(chuàng)造新的類。新類共享已有類的屬性,自己還具有額外添加的屬性,新類是從已有類派生的,稱為派生類或子類,已有類稱為父類或基類。在客觀世界中,存在著整體和部分的關(guān)系、一般和特殊的關(guān)系,繼承將后者模型化。汽車類,各類汽車?yán)ハx類,各類昆蟲3、多態(tài)性封裝性、繼承性、多態(tài)性是構(gòu)成面向?qū)ο蟪绦蛟O(shè)計的三大特征。封裝性是基礎(chǔ)繼承性是關(guān)鍵多態(tài)性是補充什么是多態(tài)性?多態(tài)是指一個名字有多種語義,或一個相同界面有多種實現(xiàn);或是指發(fā)出同樣的消息被不同類型的對象接受而導(dǎo)致完全不同的
8、行為。即對象根據(jù)所接收到