freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

c應(yīng)用與開發(fā)案例教程(上)ppt(已修改)

2025-01-17 06:06 本頁面
 

【正文】 《 C++教程 》 清華大學(xué)出版社 C++應(yīng)用與開發(fā)案例教程 (上 ) 《 C++教程 》 清華大學(xué)出版社 第 1章 引言 《 C++教程 》 清華大學(xué)出版社 在 20世紀(jì) 70年代后期 , 由于應(yīng)用程序的規(guī)模變得越來越大 ,程序的復(fù)雜性也越來越難以控制 。 為了滿足管理程序復(fù)雜性的需要 , 1980年 , 貝爾實驗室的 Bjarne Stroustrup開始對 C進行改進和擴充 。 最初的成果稱為 “ 帶類的 C”, 1983年正式取名為C++, 在經(jīng)歷了 3次修改后 , 于 1994年制定了 ANSI C++標(biāo)準(zhǔn)草案 。 由于 C++是建立在 C的基礎(chǔ)之上的 , 所以它包括了 C的全部特征 、 屬性和優(yōu)點 , 同時它還支持面向?qū)ο蟮木幊?。 C++是一種面向?qū)ο蟮某绦蛟O(shè)計語言 , 使用它可以實現(xiàn)面向?qū)ο蟮某绦蛟O(shè)計 。 面向?qū)ο蟮脑O(shè)計與面向過程的設(shè)計是有很大區(qū)別的 , 面向?qū)ο蟮某绦蛟O(shè)計是在面向過程的程序設(shè)計的基礎(chǔ)上一個質(zhì)的飛躍 。 要學(xué)會面向?qū)ο蟮某绦蛟O(shè)計 , 首先要學(xué)會一種支持面向?qū)ο蟮恼Z言 , 而 C++語言就是其中的一種 。 目前C++已經(jīng)被應(yīng)用于程序設(shè)計的眾多應(yīng)用領(lǐng)域中 , 它尤其適用于中等和大型的程序開發(fā)項目 。 從開發(fā)時間 、 費用到形成的軟件 C++語言概述 《 C++教程 》 清華大學(xué)出版社 C++語言概述 的可重用性、可擴充性、可維護性和可靠性等方面都顯示出了C++語言的優(yōu)越性。 首次學(xué)習(xí)面向?qū)ο蟮某绦蛟O(shè)計語言時,總會碰到一些在傳統(tǒng)的面向過程的程序設(shè)計語言中從未見到過的概念,如:類、對象、封裝、繼承、多態(tài)性等,而這些都是面向?qū)ο笳Z言的基本概念。 《 C++教程 》 清華大學(xué)出版社 面向?qū)ο笳Z言的基本概念 在深入了解和學(xué)習(xí)面向?qū)ο蟪绦蛟O(shè)計之前,有必要先簡單介紹一下面向?qū)ο蠓椒ㄖ械膸讉€基本概念。 對象 在現(xiàn)實世界中,對象有兩大類。①我們身邊存在的一切有形事物和抽象概念都是對象。有形事物的例子如一個學(xué)生、一輛汽車、一本書、一個工廠、一個書店、一棵樹等;抽象概念的例子如學(xué)校校規(guī)、企業(yè)規(guī)章等。②我們身邊發(fā)生的一切事件都是對象,例如一場乒乓球比賽、一次寒流侵襲、一次到商場的購物過程、一次到銀行的提款過程等。不同的對象具有各自不同的特征和功能。例如,工廠具有工廠的特征和功能、書店具有書店的特征和功能、購物過程具有購物過程的特征和功能、提款過程具有提款過程的特征和功能等。 由此可見,現(xiàn)實世界中的對象具有如下特征: ⑴有一個名字用來唯一標(biāo)識該對象; 《 C++教程 》 清華大學(xué)出版社 對象 ⑵ 有一組狀態(tài)用來描述其特征; ⑶有一組操作用來實現(xiàn)其功能。 例如,有一個學(xué)生對象,姓名叫李四,性別男,專業(yè)為計算機,學(xué)歷為碩士,可從事計算機軟件開發(fā)和計算機硬件開發(fā)的工作。在這里,李四是這個對象的名字;男性,計算機專業(yè)和碩士學(xué)歷是這個學(xué)生的特征;能從事計算機軟件開發(fā)和計算機硬件開發(fā)是這個學(xué)生具有的能力(功能)。 《 C++教程 》 清華大學(xué)出版社 類 類是面向?qū)ο蠓椒ㄖ械牧硪粋€重要的概念。在現(xiàn)實世界中,類這個術(shù)語是對一組相似對象的抽象描述。例如,作為學(xué)生對象,有張三、李四、王五等,每個對象有不同的性別,專業(yè)和學(xué)歷特征,有從事不同行業(yè)的能力。而學(xué)生類則是對學(xué)生這類對象所應(yīng)具有的共同特征和能力(功能)集合的抽象描述;教師這類對象應(yīng)具有性別,專業(yè)和學(xué)歷特征,應(yīng)有從事某種行業(yè)的能力。 在面向?qū)ο蠓椒ㄖ校愂菍哂邢嗤瑢傩院拖嗤?wù)的一組相似對象的抽象,或者說,類所包含的屬性和服務(wù)描述了一組對象的共有屬性和服務(wù)。即類是建立某個具體對象時使用的模型或模板。 在面向?qū)ο蠓椒ㄖ?,程序設(shè)計的主體是類。類是相同屬性和服務(wù)的封裝體,因此類具有模塊性;類是對具有相同屬性和服務(wù)的一個或多個對象的抽象描述,因此類具有抽象性;子類 《 C++教程 》 清華大學(xué)出版社 類 可以在繼承父類所有屬性和服務(wù)的基礎(chǔ)上,再增加自己特有的屬性和服務(wù),因此類具有繼承性。類的這種模塊性和抽象性,使面向?qū)ο蠓椒ㄔO(shè)計的模塊較傳統(tǒng)方法設(shè)計的模塊具有更好的可重用性;類的這種繼承性使面向?qū)ο蠓椒ㄔO(shè)計的軟件系統(tǒng)的可維護性和系統(tǒng)升級能力得到大大的提高。 《 C++教程 》 清華大學(xué)出版社 封裝 類是對具有相同特征的客觀對象的抽象描述,它將抽象出來的數(shù)據(jù)和操作行為封裝在類中。在類中將一部分行為作為對外部的接口,將數(shù)據(jù)和其他行為進行有效的隱藏。用戶只需根據(jù)對象提供的外部接口訪問對象,這就可以達到對數(shù)據(jù)訪問權(quán)限的合理控制。 封裝具有以下幾個特性: (1)一個清楚的邊界,所有對象的內(nèi)部變化范圍限制在這個邊界內(nèi); (2)一個接口,用來描述對象本身和其他對象之間的相互作用; (3)受保護的內(nèi)部實現(xiàn),它給出了由軟件對象提供的功能細(xì)節(jié),在外部不能訪問這些細(xì)節(jié)。 《 C++教程 》 清華大學(xué)出版社 繼承 繼承是面向?qū)ο蠓椒ㄖ兄匾母拍钪?。 在面向?qū)ο蠓椒ㄖ?, 若一個類描述的是一組對象的共性信息 , 另一個類描述的是一組對象的特性信息 , 則可以把前一個類定義為父類 , 后一個類定義為子類 。 父類通常也稱作基類 , 子類通常也稱作派生類 。 繼承是指子類自動繼承父類中定義的屬性和服務(wù) 。 面向?qū)ο蠓椒ㄖ械念惖睦^承性 , 完全和現(xiàn)實世界中人們描述事物的方法相同 。 例如 , 在現(xiàn)實世界中 , 我們要描述貓 、 狗 、豬 、 馬 、 羊 , 由于貓 、 狗 、 豬 、 馬 、 羊都屬于哺乳類動物 , 所以我們可以先定義哺乳類動物 。 我們把哺乳類動物所共有的特征和習(xí)性定義在哺乳類動物中 , 然后再分別定義貓 、 狗 、 豬 、馬 、 羊類動物各自特有的特征和習(xí)性 。 由一般到特殊的分類方法是人們總結(jié)出的高效率地分類認(rèn)識世界的方法 。 一個系統(tǒng)中所有類按繼承關(guān)系構(gòu)成的結(jié)構(gòu)圖稱作該系統(tǒng)的類層次或類結(jié)構(gòu) 。 類層次是一個樹狀結(jié)構(gòu) 。 從類層次可知 , 除 《 C++教程 》 清華大學(xué)出版社 繼承 一個類層次最根部的類外,所有類的上層可以有父類,下層可以有子類。類層次最根部的類只有子類。 在一個面向?qū)ο笙到y(tǒng)中,當(dāng)類層次中的所有類只允許有一個父類時,這樣的類繼承稱作單重繼承;當(dāng)類層次中的所有類允許有一個以上的父類時,這樣的類繼承稱為多重繼承。 類的繼承具有傳遞性,即如果類 C是類 B的子類,類 B是類 A的子類,則類 C不僅繼承類 B的所有屬性和服務(wù),還繼承類 A的所有屬性和服務(wù)。因此,一個類實際上繼承了它所在類層次以上層的全部父類的屬性和服務(wù)。這樣,屬于該類的對象也就不僅具有自己的屬性和服務(wù),還具有該類的所有父類的屬性和服務(wù)。 子類會繼承基類中的全部屬性,但子類對基類中服務(wù)的繼承方式可分為三種類型: ⑴完全繼承,即子類全部繼承基類中的所有服務(wù); 《 C++教程 》 清華大學(xué)出版社 繼承 ⑵ 修改繼承,即子類對基類中的一些服務(wù)在繼承的基礎(chǔ)上做一些補充或修改。修改繼承實現(xiàn)的具體方法是在子類中重新設(shè)計基類中的這些服務(wù),重新設(shè)計的服務(wù)將首先執(zhí)行原先基類中的服務(wù),然后執(zhí)行補充或修改的服務(wù); ⑶覆蓋繼承,即在子類中重新設(shè)計基類中的這些服務(wù),從而用新的服務(wù)覆蓋了舊的服務(wù)。覆蓋繼承實現(xiàn)的具體方法是在子類中重新設(shè)計基類中的這些服務(wù),重新設(shè)計的服務(wù)執(zhí)行作為新的內(nèi)容的代碼。由于系統(tǒng)對對象中服務(wù)的查找次序是沿類層次的當(dāng)前類逐層向上查找的,所以當(dāng)該對象在當(dāng)前層查找到了所要的服務(wù)(此時為新服務(wù))后,就不再向上層查找以前定義的服務(wù)(此時為舊服務(wù))了,從而實現(xiàn)了覆蓋繼承。 利用繼承,特別是修改繼承和覆蓋繼承,使得大型軟件的功能修改和功能擴充較傳統(tǒng)的方法容易了許多。當(dāng)要對系統(tǒng)的一些原有功能進行補充和修改時,可以重新設(shè)計原先類的一 《 C++教程 》 清華大學(xué)出版社 繼承 個子類,利用修改繼承方法重新設(shè)計子類中要補充和修改的服務(wù);當(dāng)要廢棄系統(tǒng)的一些原有功能,重新設(shè)計完全不同的新的功能時,可以重新設(shè)計原先類的一個子類,利用覆蓋繼承方法重新設(shè)計子類中要更改的服務(wù);當(dāng)要對系統(tǒng)添加一些新的功能時,可以重新設(shè)計原先類的一子類,并新設(shè)計一個新的服務(wù)來實現(xiàn)所要添加的新的功能。 對象的繼承性是面向?qū)ο蠓椒ǖ年P(guān)鍵技術(shù)。這是因為對象的繼承性所構(gòu)成的對象的層次關(guān)系和人類認(rèn)識客觀世界的過程和方法吻合。從而使得人們能夠用和認(rèn)識客觀世界一致的方法來設(shè)計軟件。 《 C++教程 》 清華大學(xué)出版社 多態(tài)性 面向?qū)ο蠓椒ǖ牧硗庖粋€基本概念是多態(tài)性。所謂多態(tài),是指一個名字有多種語義;或一個相同界面有多種實現(xiàn)。 下面我們來考察多態(tài)性問題的一個類比問題。當(dāng)一汽車司機為避免撞車時剎車,他關(guān)心的是快速剎車(效果),而不是關(guān)心剎車是鼓式剎車還是盤式剎車(實現(xiàn)方法的細(xì)節(jié))。這里,剎車的使用與剎車的結(jié)果是分離的概念,可能有多種結(jié)構(gòu)的剎車,它們的使用方法是相同的。相同的使用方法(相同界面)對應(yīng)于不同種類的剎車結(jié)構(gòu)(多種實現(xiàn)),這反映了多態(tài)性的思想。 與此類似,用戶在使用函數(shù)編程時,他關(guān)心的是該函數(shù)的功能及其使用界面,并不需要了解該函數(shù)的使用界面與函數(shù)的哪一種實現(xiàn)方法相匹配。也就是說,在設(shè)計這一級上,軟件人員只關(guān)心“施加在對象上的動作是什么”,而不必關(guān)心 《 C++教程 》 清華大學(xué)出版社 多態(tài)性 “如何實現(xiàn)這個動作 ” 以及 “ 實現(xiàn)這個動作有多少種方法 ” 的細(xì)節(jié) 。 在面向?qū)ο笳Z言中 , 重載 ( 或稱為超載 ) 表達了最簡單的多態(tài)性 。 比較容易理解的是函數(shù)的重載 。 例如: void f(int,char,char)。 void f(int,char)。 void f(int,int)。 void f(char,char)。 這幾個函數(shù)都具有相同的函數(shù)名 f,但其參數(shù)不同 , 它們的函數(shù)體也可以完全不同 , 編譯能根據(jù)其函數(shù)的不同而自動選擇相應(yīng)的函數(shù)體進行匹配 。 因此 , 一個函數(shù)名代表了多種函數(shù)的實現(xiàn)( 函數(shù)體 ) 。 對于函數(shù)重載,若函數(shù)調(diào)用(界面)與哪一個函數(shù)體(函數(shù)實現(xiàn))相匹配是在編譯時確定的,稱為早期匹配;若函數(shù)調(diào)用與哪一個函數(shù)體的匹配是在運行時動態(tài)進行的,稱之為晚期 《 C++教程 》 清華大學(xué)出版社 多態(tài)性 匹配。 C++中的虛函數(shù)提供了晚期匹配帶來的良好特征。函數(shù)重載強調(diào)的是函數(shù)名相同,函數(shù)參數(shù)和函數(shù)體不相同(編譯器能根據(jù)參數(shù)的差別進行識別和匹配)。虛函數(shù)則強調(diào)單界面多實現(xiàn)版本的方法,亦即函數(shù)名,返回類型,函數(shù)參數(shù)的類型、順序、個數(shù)完全相同,但函數(shù)體可以完全不同,這在編譯階段是無法識別的,只能由系統(tǒng)在運行時動態(tài)地尋找所需的函數(shù)體進行匹配。 在 C++中,通過繼承關(guān)系,基類及其派生類之間構(gòu)成一個樹形結(jié)構(gòu)(多重繼承為圖結(jié)構(gòu)),樹中的每個類(基類或派生類)都可以說明一個具有虛特性的函數(shù),稱為虛函數(shù)。那么在這個類極其派生類中都可以定義這個虛函數(shù)的不同實現(xiàn),但要求這些不同實現(xiàn)必須遵守相同的函數(shù)界面,否則虛特性丟失。使用時,系統(tǒng)能在運行時刻動態(tài)地尋找所需的實現(xiàn)版本。具體 《 C++教程 》 清華大學(xué)出版社 多態(tài)性 細(xì)節(jié)請參見第6章。 《 C++教程 》 清華大學(xué)出版社 面向?qū)ο蟮乃季S與方法 面向?qū)ο笫且环N認(rèn)知方法學(xué) 從人們對事物的認(rèn)識過程來看 , 主要有以下兩種方法: 1 . 從一般到特殊的演繹方法 。 以學(xué)校為例 , 最初人們看到的是 “ 學(xué)校 ” 這樣一個詞 。 在對其進行分類的過程中可以不斷理解這一詞的含義:進一步分類知道學(xué)校有大學(xué) 、 中學(xué)和小學(xué)之分;再進一步又知道大學(xué)分綜合性大學(xué) 、 理 、 工 、 農(nóng) 、醫(yī) 、 文科大學(xué)等;每一科分為不同專業(yè);專業(yè)分為不同方向 …… 在分類達到一定程度后 , 用面向?qū)ο蟮姆椒?, 對已經(jīng)分好的各類對象進行狀態(tài)描述和功能定義 , 可以明確這一類對象所能完成的工作 。 最后一步就是怎樣讓這一類對象運轉(zhuǎn)起
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1