版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
《面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言-c》課件-第6章面向?qū)ο蟪绦蛟O(shè)計(jì)概述類(lèi)與對(duì)象繼承與派生多態(tài)性異常處理模板與泛型編程contents目錄01面向?qū)ο蟪绦蛟O(shè)計(jì)概述將數(shù)據(jù)和操作封裝在一起,形成對(duì)象,對(duì)外只暴露必要的接口。封裝性繼承性多態(tài)性子類(lèi)可以繼承父類(lèi)的屬性和方法,實(shí)現(xiàn)代碼復(fù)用。同一操作作用于不同對(duì)象,可以產(chǎn)生不同的結(jié)果,增加程序靈活性。030201面向?qū)ο蟪绦蛟O(shè)計(jì)思想以對(duì)象為核心程序由一系列對(duì)象組成,對(duì)象之間通過(guò)消息傳遞進(jìn)行通信。支持類(lèi)和繼承提供類(lèi)作為對(duì)象的模板,支持繼承實(shí)現(xiàn)代碼復(fù)用和擴(kuò)展。支持多態(tài)通過(guò)虛函數(shù)、重載等機(jī)制實(shí)現(xiàn)多態(tài),提高程序可擴(kuò)展性和可維護(hù)性。面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言特點(diǎn)C語(yǔ)言是一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,由BjarneStroustrup于1983年開(kāi)發(fā)。C語(yǔ)言支持類(lèi)和對(duì)象、繼承和多態(tài)等面向?qū)ο筇匦?,同時(shí)兼容C語(yǔ)言。C語(yǔ)言具有豐富的標(biāo)準(zhǔn)庫(kù)和第三方庫(kù),廣泛應(yīng)用于系統(tǒng)開(kāi)發(fā)、游戲開(kāi)發(fā)、科學(xué)計(jì)算等領(lǐng)域。C語(yǔ)言簡(jiǎn)介02類(lèi)與對(duì)象類(lèi)是面向?qū)ο蟪绦蛟O(shè)計(jì)的基本單位,它是一種用戶(hù)自定義的數(shù)據(jù)類(lèi)型,用于描述具有相同屬性和行為的對(duì)象。在C中,使用`class`關(guān)鍵字定義類(lèi)。類(lèi)定義將數(shù)據(jù)和操作數(shù)據(jù)的函數(shù)放在同一個(gè)類(lèi)中,形成“數(shù)據(jù)封裝”,可以保證數(shù)據(jù)的安全性和完整性,同時(shí)隱藏了實(shí)現(xiàn)的細(xì)節(jié)。封裝類(lèi)定義及訪(fǎng)問(wèn)控制03對(duì)象數(shù)組與指針可以創(chuàng)建類(lèi)的對(duì)象數(shù)組或指針,以處理多個(gè)對(duì)象。01對(duì)象創(chuàng)建在C中,使用類(lèi)名加上對(duì)象名的方式來(lái)聲明對(duì)象。聲明對(duì)象時(shí),會(huì)為對(duì)象分配內(nèi)存空間,并調(diào)用構(gòu)造函數(shù)初始化對(duì)象。02對(duì)象使用通過(guò)對(duì)象名和成員運(yùn)算符`.`來(lái)訪(fǎng)問(wèn)對(duì)象的成員(包括數(shù)據(jù)成員和成員函數(shù))。對(duì)象創(chuàng)建與使用構(gòu)造函數(shù)構(gòu)造函數(shù)是一種特殊的成員函數(shù),用于初始化對(duì)象的狀態(tài)。它在創(chuàng)建對(duì)象時(shí)自動(dòng)調(diào)用。構(gòu)造函數(shù)的名稱(chēng)與類(lèi)名相同,且沒(méi)有返回類(lèi)型。析構(gòu)函數(shù)析構(gòu)函數(shù)也是一種特殊的成員函數(shù),用于在刪除對(duì)象時(shí)執(zhí)行清理操作。它在對(duì)象的生命周期結(jié)束時(shí)自動(dòng)調(diào)用。析構(gòu)函數(shù)的名稱(chēng)是在類(lèi)名前加上一個(gè)波浪號(hào)(~)。構(gòu)造函數(shù)的重載可以在一個(gè)類(lèi)中定義多個(gè)構(gòu)造函數(shù),以處理不同的初始化情況。這些構(gòu)造函數(shù)必須具有不同的參數(shù)列表,稱(chēng)為構(gòu)造函數(shù)的重載??截悩?gòu)造函數(shù)拷貝構(gòu)造函數(shù)用于初始化一個(gè)新對(duì)象為一個(gè)已有對(duì)象的副本。如果沒(méi)有顯式定義拷貝構(gòu)造函數(shù),編譯器會(huì)自動(dòng)生成一個(gè)默認(rèn)的拷貝構(gòu)造函數(shù)。構(gòu)造函數(shù)與析構(gòu)函數(shù)03繼承與派生繼承是面向?qū)ο蟪绦蛟O(shè)計(jì)的重要特征之一,它允許在已有類(lèi)的基礎(chǔ)上定義新類(lèi),新類(lèi)繼承了已有類(lèi)的屬性和方法,同時(shí)還可以添加新的屬性和方法或者覆蓋已有方法。繼承的作用主要體現(xiàn)在以下幾個(gè)方面:代碼重用、擴(kuò)展性和可維護(hù)性。通過(guò)繼承,可以重用已有類(lèi)的代碼,減少重復(fù)勞動(dòng);可以方便地?cái)U(kuò)展已有類(lèi)的功能,滿(mǎn)足新的需求;可以提高程序的可維護(hù)性,因?yàn)閷?duì)基類(lèi)的修改可以自動(dòng)地影響到所有派生類(lèi)。繼承概念及作用派生類(lèi)是通過(guò)繼承已有類(lèi)來(lái)定義的新類(lèi)。在定義派生類(lèi)時(shí),需要指定基類(lèi),并添加新的屬性、方法或者覆蓋已有方法。派生類(lèi)的訪(fǎng)問(wèn)控制主要有三種:公有繼承、保護(hù)繼承和私有繼承。公有繼承使得基類(lèi)中的公有成員在派生類(lèi)中仍然保持公有訪(fǎng)問(wèn)權(quán)限;保護(hù)繼承使得基類(lèi)中的公有和保護(hù)成員在派生類(lèi)中變?yōu)楸Wo(hù)成員;私有繼承使得基類(lèi)中的公有和保護(hù)成員在派生類(lèi)中變?yōu)樗接谐蓡T。派生類(lèi)定義與訪(fǎng)問(wèn)控制VS多重繼承是指一個(gè)類(lèi)可以同時(shí)繼承多個(gè)基類(lèi)。多重繼承可以帶來(lái)一些好處,比如可以組合多個(gè)基類(lèi)的功能,但同時(shí)也可能帶來(lái)一些問(wèn)題,比如二義性問(wèn)題和菱形問(wèn)題。為了解決多重繼承帶來(lái)的問(wèn)題,C引入了虛基類(lèi)的概念。虛基類(lèi)是指在繼承關(guān)系中共享的基類(lèi),它使得從多個(gè)路徑繼承而來(lái)的同名成員只有一個(gè)實(shí)例,從而避免了二義性和菱形問(wèn)題。在定義虛基類(lèi)時(shí),需要在基類(lèi)前面加上virtual關(guān)鍵字。多重繼承及虛基類(lèi)04多態(tài)性多態(tài)性概念多態(tài)性是面向?qū)ο蟪绦蛟O(shè)計(jì)中的一個(gè)重要特征,它允許使用父類(lèi)類(lèi)型的指針或引用來(lái)引用子類(lèi)的對(duì)象,并在運(yùn)行時(shí)根據(jù)實(shí)際對(duì)象的類(lèi)型來(lái)調(diào)用相應(yīng)的方法。實(shí)現(xiàn)方式多態(tài)性可以通過(guò)虛函數(shù)、抽象類(lèi)和接口等機(jī)制來(lái)實(shí)現(xiàn)。多態(tài)性概念及實(shí)現(xiàn)方式運(yùn)算符重載概念運(yùn)算符重載是一種特殊的函數(shù),它允許用戶(hù)為已有的運(yùn)算符定義新的含義,以適應(yīng)特定類(lèi)的需要。運(yùn)算符重載規(guī)則不是所有的運(yùn)算符都可以被重載,有些運(yùn)算符是不能被重載的,如成員訪(fǎng)問(wèn)運(yùn)算符“.”、指向成員指針運(yùn)算符“.*”、作用域運(yùn)算符“:”等。此外,重載的運(yùn)算符必須保持原有的操作數(shù)個(gè)數(shù)和優(yōu)先級(jí),且不能改變運(yùn)算符原有的結(jié)合性。運(yùn)算符重載的實(shí)現(xiàn)運(yùn)算符重載可以通過(guò)在類(lèi)內(nèi)部定義一個(gè)與運(yùn)算符名稱(chēng)相同的成員函數(shù)來(lái)實(shí)現(xiàn),也可以通過(guò)定義一個(gè)友元函數(shù)來(lái)實(shí)現(xiàn)。運(yùn)算符重載虛函數(shù)概念虛函數(shù)是一種特殊的成員函數(shù),它在基類(lèi)中聲明時(shí)使用關(guān)鍵字“virtual”進(jìn)行修飾。當(dāng)在派生類(lèi)中重新定義該成員函數(shù)時(shí),它將覆蓋基類(lèi)中的同名函數(shù)。純虛函數(shù)概念純虛函數(shù)是一種沒(méi)有實(shí)現(xiàn)的虛函數(shù),它在基類(lèi)中聲明時(shí)使用“=0”進(jìn)行修飾。含有純虛函數(shù)的類(lèi)被稱(chēng)為抽象類(lèi),抽象類(lèi)不能被實(shí)例化,只能作為其他類(lèi)的基類(lèi)使用。虛函數(shù)與純虛函數(shù)的區(qū)別虛函數(shù)在基類(lèi)中可以有實(shí)現(xiàn),也可以沒(méi)有實(shí)現(xiàn);而純虛函數(shù)在基類(lèi)中必須沒(méi)有實(shí)現(xiàn)。此外,含有純虛函數(shù)的類(lèi)不能被實(shí)例化,而含有虛函數(shù)的類(lèi)可以被實(shí)例化。虛函數(shù)與純虛函數(shù)05異常處理異常處理的概念01異常處理是指在程序運(yùn)行過(guò)程中,當(dāng)遇到錯(cuò)誤或異常情況時(shí),能夠自動(dòng)執(zhí)行一系列操作,以確保程序的穩(wěn)定性和可靠性。異常處理的作用02通過(guò)異常處理,可以捕獲和處理程序中的錯(cuò)誤和異常情況,避免程序崩潰或產(chǎn)生不可預(yù)測(cè)的結(jié)果,提高程序的健壯性和可維護(hù)性。異常處理的流程03異常處理通常包括捕獲異常、處理異常和清理資源三個(gè)步驟。當(dāng)程序出現(xiàn)異常時(shí),會(huì)觸發(fā)異常捕獲機(jī)制,將異常信息傳遞給異常處理程序進(jìn)行處理,并在處理完成后清理相關(guān)資源。異常處理機(jī)制概述C中通過(guò)try-catch語(yǔ)句實(shí)現(xiàn)異常處理。try塊中包含可能拋出異常的代碼,catch塊用于捕獲并處理異常。try-catch語(yǔ)句當(dāng)程序中出現(xiàn)異常時(shí),可以使用throw語(yǔ)句拋出異常。throw語(yǔ)句后面可以跟隨一個(gè)異常對(duì)象或異常類(lèi)型,用于標(biāo)識(shí)拋出的異常。throw語(yǔ)句在C中,異常對(duì)象可以通過(guò)throw語(yǔ)句拋出,并由catch塊捕獲。catch塊可以指定要捕獲的異常類(lèi)型,并定義相應(yīng)的處理邏輯。異常對(duì)象的傳遞和處理C異常處理語(yǔ)法結(jié)構(gòu)錯(cuò)誤處理和異常情況的處理在程序設(shè)計(jì)中,異常處理可以用于處理各種錯(cuò)誤和異常情況,如輸入錯(cuò)誤、文件訪(fǎng)問(wèn)失敗、內(nèi)存分配失敗等。通過(guò)異常處理,可以統(tǒng)一管理和處理這些錯(cuò)誤情況,提高程序的穩(wěn)定性和可靠性。資源管理和清理異常處理還可以用于資源管理和清理。在程序運(yùn)行過(guò)程中,可能會(huì)涉及到各種資源的申請(qǐng)和釋放,如內(nèi)存、文件句柄、網(wǎng)絡(luò)連接等。當(dāng)程序出現(xiàn)異常時(shí),可以通過(guò)異常處理機(jī)制來(lái)確保資源被正確釋放和清理,避免資源泄漏和程序崩潰等問(wèn)題。程序調(diào)試和排錯(cuò)異常處理對(duì)于程序調(diào)試和排錯(cuò)也有很大的幫助。當(dāng)程序出現(xiàn)異常時(shí),可以通過(guò)異常信息定位問(wèn)題的位置和原因,便于開(kāi)發(fā)人員快速定位和修復(fù)問(wèn)題。同時(shí),通過(guò)在程序中設(shè)置斷點(diǎn)或打印日志等方式,可以進(jìn)一步跟蹤和分析程序的執(zhí)行過(guò)程和數(shù)據(jù)狀態(tài)。異常處理在程序設(shè)計(jì)中應(yīng)用06模板與泛型編程模板概念及作用01模板是一種對(duì)類(lèi)型進(jìn)行參數(shù)化的工具,它可以提高代碼的復(fù)用性和可維護(hù)性。02模板允許程序員在不知道具體類(lèi)型的情況下編寫(xiě)通用的代碼,增強(qiáng)了代碼的靈活性和可擴(kuò)展性。模板在編譯時(shí)生成具體類(lèi)型的代碼,因此不會(huì)影響程序的運(yùn)行效率。03函數(shù)模板是一種對(duì)函數(shù)進(jìn)行類(lèi)型參數(shù)化的方法,它使得函數(shù)可以處理多種類(lèi)型的數(shù)據(jù)。函數(shù)模板的使用與普通函數(shù)類(lèi)似,但在調(diào)用時(shí)需要指定具體的類(lèi)型參數(shù)。函數(shù)模板定義與使用函數(shù)模板的定義以`template`關(guān)鍵字開(kāi)始,后面跟著尖括號(hào)中的類(lèi)型參數(shù)列表。函數(shù)模板支持默認(rèn)類(lèi)型參數(shù)和類(lèi)型推斷,使得使用更加靈活方便。01類(lèi)模板的定義與函數(shù)模板類(lèi)似,也是以`template`關(guān)鍵字開(kāi)始,后面跟著尖括號(hào)中的類(lèi)型參數(shù)列表。類(lèi)模板的使用需要在使用前進(jìn)行實(shí)例化,即指定具體的類(lèi)型參數(shù)。類(lèi)模板支持成員函數(shù)的模板化,使得成員函數(shù)也可以處理多種類(lèi)型的數(shù)據(jù)。類(lèi)模板是一種對(duì)類(lèi)進(jìn)行類(lèi)型參數(shù)化的方法,它使得類(lèi)可以處理多種類(lèi)型的數(shù)據(jù)。020304類(lèi)模板定義與使用泛型編程思想在C中應(yīng)用泛型編程是一種編程范式
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 網(wǎng)絡(luò)犯罪與法律應(yīng)對(duì)-洞察分析
- 單位消防安全月活動(dòng)總結(jié)范文(10篇)
- 舞蹈編導(dǎo)作品分析-洞察分析
- 營(yíng)養(yǎng)咨詢(xún)國(guó)際化趨勢(shì)-洞察分析
- 頭痛患者腦血流速度研究-洞察分析
- 土木香提取物的抗菌活性研究-洞察分析
- 虛擬現(xiàn)實(shí)與增強(qiáng)現(xiàn)實(shí)融合技術(shù)-洞察分析
- 文化元素在目的地形象中的應(yīng)用-洞察分析
- 《保安員培訓(xùn)資料》課件
- 創(chuàng)建文明校園院長(zhǎng)講話(huà)稿(13篇)
- 煙花爆竹作業(yè)安全技術(shù)規(guī)程
- 2023年云南省普通高中學(xué)業(yè)水平考試歷史試卷附答案
- 《數(shù)學(xué)文化》課程教學(xué)大綱
- 2021-2022學(xué)年天津市河西區(qū)八年級(jí)(上)期末物理試題及答案解析
- 新疆維吾爾自治區(qū)喀什地區(qū)各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會(huì)明細(xì)及行政區(qū)劃代碼
- 部編版語(yǔ)文六年級(jí)上冊(cè)總復(fù)習(xí)《判斷題》專(zhuān)項(xiàng)復(fù)習(xí)
- 一年級(jí)上學(xué)期樂(lè)考質(zhì)量分析
- 血液系統(tǒng)疾病病人常見(jiàn)癥狀體征護(hù)理
- [北京]輸變電工程標(biāo)準(zhǔn)工藝應(yīng)用圖冊(cè)(圖文并茂)
- 預(yù)制箱梁常見(jiàn)問(wèn)題以及處理方案
- 《建筑施工現(xiàn)場(chǎng)環(huán)境與衛(wèi)生標(biāo)準(zhǔn)》(JGJ146)
評(píng)論
0/150
提交評(píng)論