![上海交大面向對象程序設計C課件第14章-2024鮮版_第1頁](http://file4.renrendoc.com/view5/M01/38/21/wKhkGGYPZBeAAM01AAE_q-ihtr0052.jpg)
![上海交大面向對象程序設計C課件第14章-2024鮮版_第2頁](http://file4.renrendoc.com/view5/M01/38/21/wKhkGGYPZBeAAM01AAE_q-ihtr00522.jpg)
![上海交大面向對象程序設計C課件第14章-2024鮮版_第3頁](http://file4.renrendoc.com/view5/M01/38/21/wKhkGGYPZBeAAM01AAE_q-ihtr00523.jpg)
![上海交大面向對象程序設計C課件第14章-2024鮮版_第4頁](http://file4.renrendoc.com/view5/M01/38/21/wKhkGGYPZBeAAM01AAE_q-ihtr00524.jpg)
![上海交大面向對象程序設計C課件第14章-2024鮮版_第5頁](http://file4.renrendoc.com/view5/M01/38/21/wKhkGGYPZBeAAM01AAE_q-ihtr00525.jpg)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
上海交大面向對象程序設計C課件第14章12024/3/27目錄面向對象程序設計概述類與對象繼承與派生多態(tài)性與虛函數運算符重載模板與泛型編程22024/3/2701面向對象程序設計概述32024/3/270102對象(Object)對象是現實世界中的實體在計算機程序中的抽象表示,它包含了描述實體的屬性和行為。類(Class)類是具有相同屬性和行為的對象的抽象描述,它定義了創(chuàng)建對象的模板。封裝(Encapsul…封裝是將對象的屬性和行為捆綁在一起,形成一個獨立的實體,并隱藏內部實現細節(jié)。繼承(Inherita…繼承是一種通過已有的類創(chuàng)建新類的機制,新類繼承了現有類的屬性和行為,并可以添加新的特性。多態(tài)(Polymorp…多態(tài)是指允許使用父類類型的指針或引用來引用子類的對象,并可以在運行時確定調用哪個子類的方法。030405面向對象程序設計的基本概念42024/3/27面向對象程序設計通過類和對象的概念,將現實世界中的實體抽象為程序中的對象,提高了程序的可理解性和可維護性。抽象性面向對象程序設計通過封裝將對象的屬性和行為捆綁在一起,隱藏了內部實現細節(jié),提高了程序的安全性和可重用性。封裝性面向對象程序設計通過繼承機制實現了代碼的復用和擴展,提高了程序的開發(fā)效率和可維護性。繼承性面向對象程序設計通過多態(tài)機制實現了程序的靈活性和可擴展性,使得程序可以更加自然地模擬現實世界中的復雜關系。多態(tài)性面向對象程序設計的特點52024/3/27Java是一種純面向對象的編程語言,它強制使用面向對象的方式進行程序設計,提供了豐富的類庫和強大的跨平臺能力。C#是微軟公司開發(fā)的一種面向對象的編程語言,它借鑒了Java的許多優(yōu)點,并提供了更加完善的語言特性和開發(fā)工具支持。面向對象程序設計的語言C#Java62024/3/2702類與對象72024/3/27類的概念類是面向對象程序設計中的基本單位,它是一種用戶自定義的數據類型,用于描述具有相同屬性和行為的對象。類的定義語法在C中,使用`class`關鍵字定義類,后面跟類的名稱和類的主體,主體中包含類的成員變量和成員函數。類的成員類的成員包括數據成員(成員變量)和函數成員(成員函數),分別用于描述對象的屬性和行為。類的定義82024/3/27對象的創(chuàng)建與使用當不再需要對象時,應使用`delete`運算符釋放對象所占用的內存空間,并調用類的析構函數來清理對象所使用的資源。對象的銷毀在程序中,使用類的名稱和變量名來創(chuàng)建對象,并使用`new`運算符為對象分配內存空間。創(chuàng)建對象時,可以調用類的構造函數來初始化對象的狀態(tài)。對象的創(chuàng)建通過對象名和對象的成員訪問運算符`.`來訪問對象的成員變量和成員函數,實現對對象的操作。對象的使用92024/3/27public成員可以被任何代碼訪問,包括類的成員函數、其他類和對象。只能被類的成員函數和派生類中的成員函數訪問。只能被類的成員函數訪問,其他代碼無法直接訪問。通過合理地使用訪問控制符,可以隱藏類的內部實現細節(jié),提高程序的可維護性和安全性。同時,也可以控制類與類之間的耦合度,實現代碼的模塊化和重用。protected成員private成員訪問控制的作用類的訪問控制102024/3/2703繼承與派生112024/3/27繼承是面向對象程序設計中的一個重要機制,它允許在已有的類的基礎上創(chuàng)建新類,新類繼承了現有類的屬性和方法。繼承實現了代碼的重用,提高了軟件的可維護性和可擴展性。在C中,繼承是通過派生類來實現的,派生類可以繼承一個或多個基類的成員。010203繼承的概念122024/3/27派生類的定義語法為:`class派生類名:繼承方式基類名{...};`,其中繼承方式可以是`public`、`protected`或`private`。派生類可以繼承多個基類,這種情況下稱為多重繼承。派生類是通過繼承基類來定義的新類,它包含了基類的所有成員,并可以添加新的成員。派生類的定義132024/3/27繼承的訪問控制在C中,有三種繼承方式private繼承public繼承protected繼承public、protected和private,它們分別決定了基類成員在派生類中的訪問權限。基類的所有成員在派生類中變?yōu)閌private`訪問權限。基類的`public`和`protected`成員在派生類中保持原有的訪問權限,`private`成員不可訪問?;惖腵public`和`protected`成員在派生類中變?yōu)閌protected`訪問權限,`private`成員不可訪問。142024/3/2704多態(tài)性與虛函數152024/3/27多態(tài)性是面向對象程序設計中的一個重要特征,它允許使用父類類型的指針或引用來引用子類的對象,并在運行時根據實際對象的類型來調用相應的方法。在C中,實現多態(tài)性主要依賴于虛函數和純虛函數。多態(tài)性使得程序具有更好的擴展性和可維護性,因為可以在不修改已有代碼的情況下添加新的功能或子類。多態(tài)性的概念162024/3/2701在基類中,虛函數通過在函數聲明前加上關鍵字`virtual`來定義。當使用基類指針或引用調用虛函數時,將根據實際對象的類型來確定調用哪個類的成員函數,實現多態(tài)性。如果派生類中沒有重寫基類的虛函數,則派生類對象將使用基類的虛函數。虛函數是在基類中聲明的、在派生類中可能被重寫的成員函數。020304虛函數的定義與使用172024/3/27純虛函數與抽象類01純虛函數是一種特殊的虛函數,它在基類中聲明但沒有定義,要求派生類必須提供具體的實現。02純虛函數通過在函數聲明后加上`=0`來定義,表示該函數沒有實現。03包含純虛函數的類被稱為抽象類,抽象類不能被實例化,只能作為其他類的基類。04派生類必須實現抽象類中的所有純虛函數才能被實例化,否則該派生類仍然是抽象類。182024/3/2705運算符重載192024/3/27運算符重載的概念運算符重載是對已有的運算符賦予多重含義,使同一個運算符作用于不同類型的數據時導致不同的行為。運算符重載可以改變運算符原有的功能,但不能改變運算符的優(yōu)先級和結合性。通過運算符重載,可以擴展C語言中已有運算符的功能,使之能用于自定義數據類型,從而方便用戶的使用和提高程序的效率。202024/3/27運算符重載的實現運算符重載是通過定義特殊的函數來實現的,這些函數被稱為運算符函數。運算符函數的定義格式與普通函數類似,但函數名必須是以關鍵字`operator`開頭,后跟所要重載的運算符。運算符函數的參數類型和個數取決于所要重載的運算符。運算符函數的返回類型通常與被操作數的類型相同,但有些情況下也可以不同。212024/3/27不是所有的運算符都可以被重載,有些運算符在C語言中是不能被重載的,如成員訪問運算符`.`、指向成員指針運算符`.*`、作用域分辨符`:`、條件運算符`?:`等。重載的運算符必須和用戶定義的自定義類型對象一起使用,否則會導致編譯錯誤。運算符重載不能改變該運算符的優(yōu)先級和結合性,否則會導致程序邏輯錯誤。在進行運算符重載時,應注意保持其一致性和合理性,避免出現二義性和語義上的混淆。運算符重載的注意事項222024/3/2706模板與泛型編程232024/3/27模板的概念01模板是一種編程技術,用于實現泛型編程,提高代碼的復用性和可維護性。02模板可以分為函數模板和類模板兩種類型。使用模板可以減少重復的代碼編寫,提高開發(fā)效率。03242024/3/27函數模板的定義與使用01函數模板的定義語法:`template<typename類型參數>返回值類型函數名(參數列表){函數體}`02類型參數可以用任意類型替換,包括基本數據類型和用戶自定義類型。03函數模板的使用方法與普通函數相同,編譯器會根據傳入的參數類型自動推斷出模板參數的類型。252024/3/27類模板的定義語法:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《電鍍液性能》課件
- 2025年長沙貨運從業(yè)資格證考試題目大全及答案
- 企業(yè)文化與財務管理模板
- 咨詢業(yè)態(tài)勢剖析模板
- 師專外國文學教學改革的探索
- 小學語文低年段“說寫融合”的要求及教學策略
- 安全運維管理中的密碼管理
- 考學個人申請書
- 申請醫(yī)保申請書
- 大學生創(chuàng)業(yè)項目支出明細
- 元宇宙視域下非遺保護與傳播途徑探究
- 2025年買賣個人房屋合同(4篇)
- 2025代運營合同范本
- 武漢2025年湖北武漢理工大學管理人員招聘筆試歷年參考題庫附帶答案詳解
- 家庭燃氣和煤氣防火安全
- 第十一章《功和機械能》達標測試卷(含答案)2024-2025學年度人教版物理八年級下冊
- 大學學生宿舍管理員工作培訓
- 初三物理常識試卷單選題100道及答案
- 辦公用品價格清單
- 公司銀行貸款申請書范文
- DB3713T 340-2024 實景三維數據接口及服務發(fā)布技術規(guī)范
評論
0/150
提交評論