版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第7章面向?qū)ο蟪绦蛟O(shè)計(jì)7.1類與對象7.2類的繼承與派生7.3多態(tài)理解類與對象的概念掌握類與對象的定義了解類的繼承、派生與多態(tài)7.1函數(shù)7.1.1類的定義7.1.2對象的定義7.1.3數(shù)據(jù)封裝7.1.4函數(shù)重載7.1類與對象7.1.1類的定義類是對現(xiàn)實(shí)世界的抽象,包括數(shù)據(jù)和對數(shù)據(jù)操作的函數(shù);對象是類的實(shí)例化。類中的數(shù)據(jù)稱為數(shù)據(jù)成員,類中的函數(shù)稱為成員函數(shù)。格式:class類名{public:
公有成員protected:
保護(hù)成員private:
私有成員};定義類的關(guān)鍵字為class;類的定義由兩大部分構(gòu)成:說明部分和實(shí)現(xiàn)部分;類的成員分為數(shù)據(jù)成員和成員函數(shù)兩種;類體內(nèi)不允許對數(shù)據(jù)成員初始化;數(shù)據(jù)成員的聲明方式同普通變量的聲明,可以是任意類型,也可以是對象;成員函數(shù)的說明在類體內(nèi),而成員函數(shù)的定義可以在類體內(nèi),也可以在類體外;類成員具有3種訪問權(quán)限;7.1類與對象7.1.2對象的定義定義類只是相當(dāng)于定義了一種數(shù)據(jù)類型,若要使用它,則必須定義該類型的變量,也就是該類的對象。格式:class類名{數(shù)據(jù)成員;成員函數(shù);}對象名表列;或類名對象名1[,對象名2,…];定義了類的對象以后,可以通過對象訪問類的公有數(shù)據(jù)成員,基本格式如下:對象名.數(shù)據(jù)成員名對象名.成員函數(shù)名(參數(shù)表)7.1類與對象7.1.3數(shù)據(jù)封裝C/C++通過3種訪問權(quán)限符來實(shí)現(xiàn)數(shù)據(jù)封裝,隱藏對象的屬性和實(shí)現(xiàn)細(xì)節(jié),僅對外公開接口和對象進(jìn)行交互,將數(shù)據(jù)和操作數(shù)據(jù)的函數(shù)進(jìn)行有機(jī)結(jié)合。封裝:把對象的屬性和方法結(jié)合成一個(gè)獨(dú)立的單位。信息隱藏:盡可能隱蔽對象的內(nèi)部細(xì)節(jié)。目的:外界不能直接存取對象的內(nèi)部信息,不知道對象內(nèi)部實(shí)現(xiàn)細(xì)節(jié),實(shí)現(xiàn)“高內(nèi)聚、低耦合”。學(xué)生高考成績英語數(shù)學(xué)語文查詢成績外內(nèi)7.1類與對象7.1.4函數(shù)重載函數(shù)重載是指同一個(gè)函數(shù)名可以對應(yīng)多個(gè)函數(shù)的實(shí)現(xiàn),即多個(gè)函數(shù)可共用一個(gè)函數(shù)名。intsum(inta,intb){returna+b;}doublesum(doublea,doubleb){returna+b;}intmain(){
cout<<sum(1,2)<<endl;
cout<<sum(1.1,1.2)<<endl;return0;}7.2類的繼承與派生7.2.1繼承的內(nèi)涵7.2.3成員函數(shù)的重寫7.2.2派生類的定義7.2.4派生類的繼承方式7.2類的繼承與派生7.2.1繼承的內(nèi)涵繼承是面向?qū)ο蠓椒ㄌ岣咧赜眯缘闹匾胧?,繼承表現(xiàn)了特殊類與一般類之間的關(guān)系。子類可以繼承父類中的屬性和方法也可以定義自己獨(dú)有屬性和方法。哺乳綱真獸亞綱奇蹄目食肉目靈長目原猴亞目簡鼻亞目長臂猿科猩猩科人科……原獸亞綱單孔目后獸亞綱有袋目7.2類的繼承與派生7.2.2派生類的定義派生類是指在已有類的基礎(chǔ)上生成新類。已有類稱為基類(父類),從基類基礎(chǔ)上生成的類稱為派生類(子類)。派生類繼承了基類的數(shù)據(jù)成員和成員函數(shù)。在生成派生類時(shí)可以加入數(shù)據(jù)成員和成員函數(shù)。派生類的定義格式為:格式:class派生類名:[繼承方式]基類名1[,繼承方式基類名2,…,繼承方式基類名n]{派生類增加的數(shù)據(jù)成員和成員函數(shù)};定義中的基類名必須是已有類的名稱,派生類名則是新建的類名。一個(gè)派生類可以只有一個(gè)基類,稱為單繼承;也可以同時(shí)有多個(gè)基類,稱為多重繼承。繼承方式有3種:公有繼承(public)、私有繼承(private)和保護(hù)繼承(protected)。如果省略繼承關(guān)鍵字,系統(tǒng)默認(rèn)的繼承方式是私有繼承。繼承方式不同,派生類自身及其使用者對基類成員的訪問權(quán)限不同。7.2類的繼承與派生7.2.3成員函數(shù)的重寫略。7.2類的繼承與派生7.2.4派生類的繼承方式略。7.3多態(tài)7.3.1虛函數(shù)7.3.3純虛函數(shù)與抽象類7.3.2多態(tài)的實(shí)現(xiàn)機(jī)制7.3多態(tài)7.3.1虛函數(shù)多態(tài)是面向?qū)ο蟪绦蛟O(shè)計(jì)的一個(gè)重要特征。多態(tài)是指一個(gè)對象的多種形態(tài)。一個(gè)類的派生類可以定義它們唯一的行為(方法),同時(shí)共享基類的相同特征。虛函數(shù)是C++實(shí)現(xiàn)多態(tài)的重要條件。當(dāng)基類中的某個(gè)成員函數(shù)被聲明為虛函數(shù)后,可以在派生類中改寫該函數(shù),實(shí)現(xiàn)不同的功能。虛函數(shù)的格式如下:virtual類型成員函數(shù)名(參數(shù)表){}虛函數(shù)的使用方法如下:在基類中的某一個(gè)成員函數(shù)前加上關(guān)鍵字virtual,該成員函數(shù)就被聲明為虛函數(shù)。在派生類中改寫該成員函數(shù),改寫時(shí)使用與基類完全相同的函數(shù)聲明方式。定義一個(gè)指向基類的指針,讓該指針指向派生類的某一對象。通過指針調(diào)用該虛函數(shù),所調(diào)用的就是指向的派生類中的同名成員函數(shù)。7.3多態(tài)7.3.2多態(tài)的實(shí)現(xiàn)機(jī)制在C++中實(shí)現(xiàn)多態(tài)需要滿足以下幾個(gè)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學(xué)衛(wèi)生宣教制度
- 衛(wèi)生室聯(lián)合用藥管理制度
- 鎮(zhèn)鄉(xiāng)中心校食品衛(wèi)生制度
- 小學(xué)德育衛(wèi)生制度
- 衛(wèi)生院信息反饋制度
- 衛(wèi)生站院感巡查制度
- 衛(wèi)生系統(tǒng)雙報(bào)告制度
- 鄉(xiāng)鎮(zhèn)衛(wèi)生院重精工作制度
- 熟制品衛(wèi)生管理制度
- 焊錫職衛(wèi)生管理制度
- 2023-2024學(xué)年廣東省茂名市高一(上)期末數(shù)學(xué)試卷(含答案)
- 《課堂管理的技巧》課件
- 醫(yī)院培訓(xùn)課件:《頸椎病》
- 佛山市離婚協(xié)議書范本
- HG+20231-2014化學(xué)工業(yè)建設(shè)項(xiàng)目試車規(guī)范
- 工地春節(jié)停工復(fù)工計(jì)劃安排方案
- 連接員題庫(全)題庫(855道)
- 單元學(xué)習(xí)項(xiàng)目序列化-選擇性必修下冊第三單元為例(主題匯報(bào)課件)-統(tǒng)編高中語文教材單元項(xiàng)目式序列化研究
- 黑布林英語漁夫和他的靈魂
- 電站組件清洗措施及方案
- 冀教版五年級(jí)英語下冊全冊同步練習(xí)一課一練
評論
0/150
提交評論