下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、實(shí)驗(yàn)四繼承派生類定義及訪問權(quán)限一、實(shí)驗(yàn)?zāi)康? 理解繼承的概念、特性及在C+語言中的實(shí)現(xiàn)方法;2掌握C+語言派生類的定義,熟悉不同的繼承方式(派生方式);3掌握派生類構(gòu)造函數(shù)的定義及在定義、釋放派生類對(duì)象時(shí)構(gòu)造函數(shù)、析構(gòu)函數(shù)的執(zhí) 行順序;4掌握不同繼承方式下,基類的成員在派生類中的訪問特性;5初步熟悉派生類的應(yīng)用。二、實(shí)驗(yàn)學(xué)時(shí)課內(nèi)實(shí)驗(yàn):2課時(shí)課外練習(xí):2課時(shí)三本實(shí)驗(yàn)涉及的新知識(shí)繼承的有關(guān)概念1 繼承是面向?qū)ο蟪绦蛟O(shè)計(jì)思想最重要的概念之一,其主要作用是提高軟件的可重用 性和可維護(hù)性。在 C+中,實(shí)現(xiàn)繼承的機(jī)制是通過派生得到的,原類(被繼承的類)稱為基 類,在基類的基礎(chǔ)上創(chuàng)建的新類稱為派生類。2.
2、繼承具有層次結(jié)構(gòu), 越在上面的類越具有普通性和共性, 而下層類比上層類更具體, 越在下層的類越細(xì)化、專門化; 同時(shí),繼承具有傳遞性, 即派生類能自動(dòng)繼承上層基類的全 部數(shù)據(jù)結(jié)構(gòu)及操作方法(數(shù)據(jù)成員及成員函數(shù)) 。3. 在C+中,繼承分為單繼承與多繼承。只有一個(gè)基類的繼承稱為單繼承;有二個(gè)或 以上基類的繼承稱為多繼承。派生類的定義1 定義格式class派生類名:繼承方式基類名 派生類新定義的成員 ;2說明 在定義派生類時(shí)用 “:將派生類與基類分開,構(gòu)成類的層次結(jié)構(gòu);派生類與普通類的定義一樣,仍然包括數(shù)據(jù)成員與成員函數(shù)。派生類的構(gòu)造函數(shù)與析構(gòu)函數(shù)1 派生類的構(gòu)造函數(shù)定義格式派生類名(參數(shù)表):基類
3、名(參數(shù)名1,參數(shù)名2,) 構(gòu)造函數(shù)函數(shù)體說明 如果基類中顯式定義了構(gòu)造函數(shù)為基類數(shù)據(jù)成員賦初值,在派生類中也應(yīng)顯式定義 構(gòu)造函數(shù),除為新增數(shù)據(jù)成員進(jìn)行初始化外,同時(shí)也為基類的數(shù)據(jù)成員提供初始化的參數(shù)表。 派生類的構(gòu)造函數(shù)也可以重載。 可以定義派生類的無參構(gòu)造函數(shù),有參構(gòu)造函數(shù)及帶缺省參數(shù)的構(gòu)造函數(shù)。2 構(gòu)造函數(shù)與析構(gòu)函數(shù)的執(zhí)行順序定義派生類對(duì)象時(shí),先執(zhí)行基類的構(gòu)造函數(shù),再執(zhí)行派生類的構(gòu)造函數(shù)。 釋放派生類對(duì)象時(shí),先調(diào)用派生類的析構(gòu)函數(shù),再調(diào)用基類的析構(gòu)函數(shù)。3、在派生類中含有對(duì)象成員(派生類為容器類)時(shí)的構(gòu)造函數(shù)的定義格式派生類名(總參數(shù)表):基類名(參數(shù)表),成員對(duì)象名(參數(shù)表)構(gòu)造函數(shù)函
4、數(shù)體說明 定義派生類對(duì)象時(shí),先執(zhí)行基類構(gòu)造函數(shù),再執(zhí)行成員對(duì)象所屬類的構(gòu)造函數(shù),最 后執(zhí)行派生類的構(gòu)造函數(shù)。 釋放派生類對(duì)象時(shí),先調(diào)用派生類的析構(gòu)函數(shù),再調(diào)用成員對(duì)象所屬類的析構(gòu)函數(shù),最后調(diào)用基類的析構(gòu)函數(shù)為派生類對(duì)象成員提供值的普通成員函數(shù)1 在派生類中,通常也應(yīng)定義為其對(duì)象成員提供值的普通成員函數(shù)。2.為派生類對(duì)象成員提供值的普通成員函數(shù),既要為派生類的新增的數(shù)據(jù)成員提供值,也應(yīng)為所繼承的基類的數(shù)據(jù)成員提供值,通常可以通過調(diào)用基類成員函數(shù)實(shí)現(xiàn)。不同繼承方式下基類成員在派生類中的訪問特性1 .繼承方式在C+中,繼承方式包括公有繼承(public)、私有繼承(private)和保護(hù)繼承(pro
5、tected)三種繼承方式,相應(yīng)的派生類分別稱為公有派生類、私有派生類、保護(hù)派生類。2.不同繼承方式下基類成員在派生類中的訪問特性 基類的私有成員在派生類的作用域內(nèi)均不可見,即無論是哪種繼承方式,派生類的 成員函數(shù)均不能使用基類的私有成員,而只能調(diào)用基類中的公有成員函數(shù)訪問。 在公有繼承方式下,基類中的公有成員、保護(hù)成員在派生類中的訪問權(quán)限不變,即 仍為公有成員、保護(hù)成員。 在保護(hù)繼承方式下,基類中的公有成員、保護(hù)成員在派生類中均改變?yōu)楸Wo(hù)成員。 在私有繼承方式下,基類中的公有成員、保護(hù)成員在派生類中均改變?yōu)樗接谐蓡T。四、實(shí)驗(yàn)內(nèi)容驗(yàn)證及認(rèn)知實(shí)驗(yàn)按要求調(diào)試下列程序,并回答相關(guān)問題。程序 1 (e
6、xp_401.cpp)#in clude<iostream>using n amespace std;class Base基類Base的定義 private:float x,y;public:Base(float a=0,float b=0)x=a;y=b;void prin t(void) cout<<"x="<<x<<"y="<<y;class Derived:public Base 派生類 Derived的定義注意定義方法 private:float z;public:Derived(fl
7、oat a=0,float b=0,float c=0):Base(a,b) z=c;派生類的構(gòu)造函數(shù)定義void prin t(void)/派生類的成員函數(shù) Base:print(); 調(diào)用基類 Base 的成員函數(shù) print(); cout<<" z="<<z;void mai n(void) Base a(10.0,20.0);Derived b(10.0,20.0,30.0);a. pri nt();cout<<e ndl;b. pri nt();cout<<e ndl;b.Base:pri nt();cout<
8、;<e ndl;問題:運(yùn)行程序的輸出結(jié)果為: 程序中“ a.print(); ”調(diào)用的是類成員中的“ print() ”成員函數(shù),“ b.print(); ”調(diào)用的是 類成員中的"print() ”成員函數(shù),“ b.Base:print(); ”調(diào)用的是類成員中的“ print() ”成員函數(shù)。構(gòu)造函數(shù)“ Derived(float a=0,float b=0,float c=0):Base(a,b) ” 中的“ Base(a,b)” 的作用 是:。 將派生類定義中的“public"改為"private",重新編譯程序,程序中語句會(huì)出現(xiàn)編譯錯(cuò),其原
9、因是 。知識(shí)應(yīng)用實(shí)驗(yàn)1 分析下列程序,先寫出程序的輸出結(jié)果,再上機(jī)運(yùn)行程序驗(yàn)證其正確性,如果不正 確,請(qǐng)認(rèn)真分析出錯(cuò)原因。程序 2 (exp_402.cpp)#in clude<iostream>using n amespace std;class Base private:float x,y;public:Base(float a=0,float b=0)你分析的程序輸出結(jié)果是:程序的實(shí)際輸出結(jié)果是:x=a;y=b;cout<<"基類構(gòu)造函數(shù)被調(diào)用!n"Base()cout<<"基類析構(gòu)函數(shù)被調(diào)用!n"void pr
10、in t(void) cout<<"x="<<x<<"y="<<y;class Derived:public Base private:float z;public:Derived(float a=0,float b=0,float c=0):Base(a,b) z=c;cout<<"派生類構(gòu)造函數(shù)被調(diào)用!n"Derived()cout<<"派生類析構(gòu)函數(shù)被調(diào)用!n"void prin t(void) Base:pri nt();cout<
11、;<" z="<<z;void mai n(void) Base a(10.0,20.0);Derived b(10.0,20.0,30.0);a. pri nt();cout<<e ndl;b. pri nt();cout<<e ndl;程序 3 (exp_403.cpp)#in clude<iostream.h>class Data private:int da;public:Data( int x=0) da=x;cout<<" Data類的構(gòu)造函數(shù)被調(diào)用!"<<endl
12、;Data() cout<<" Data 類的析構(gòu)函數(shù)被調(diào)用!"<<endl;你分析的程序輸出結(jié)果是:程序的實(shí)際輸出結(jié)果是:;class A private :int a;public :A(int x=0) a=x;cout<<" A類的構(gòu)造函數(shù)被調(diào)用!"<<endl;A() cout<<" A 類的析構(gòu)函數(shù)被調(diào)用!"<<e ndl;class B : public A private :int b;Data c;public :B(i nt x=0,i nt
13、y=O,i nt z=O):A(x),c(y) b=z;cout<<" B類的構(gòu)造函數(shù)被調(diào)用!"<<endl;B() cout<<" B 類的析構(gòu)函數(shù)被調(diào)用!"<<e ndl;void mai n() B a;2 完善、調(diào)試通過下列程序,并按所要求回答問題。程序 4( exp_404.cpp)#in clude<iostream>using n amespace std;class Base基類Base的定義 private:float x,y;public:Base(float a=0,flo
14、at b=0)x=a;y=b;void setBase(float a=0,float b=0)x=a;y=b;void prin t(void) cout<<"x="<<x<<"ny="<<y<<e ndl;class Derived:public Base 派生類 Derived 的定義 private:float z;public:Derived( (1):(2) z=c;/派生類的構(gòu)造函數(shù)定義void setDerived( (3) );z=c;void prin t(void)/派生類的成員函數(shù) Base:print();/ 調(diào)用基類 Base 的成員函數(shù) print(); cout<<"z="<<z<<e ndl;void mai n(void) Derived b(10.0,20.0,30.0);b.pri nt();b.setDerived(15.5,25.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《計(jì)算機(jī)病毒與木馬》課件
- 睪丸觸痛的臨床護(hù)理
- 丹毒絲菌病的臨床護(hù)理
- 堵奶的健康宣教
- 維生素營養(yǎng)障礙的健康宣教
- JJF(陜) 113-2024 低頻電磁場測量儀校準(zhǔn)規(guī)范
- 函數(shù)復(fù)習(xí)課課件
- 新課程標(biāo)準(zhǔn)學(xué)習(xí)與落實(shí)計(jì)劃
- 數(shù)字在線服務(wù)相關(guān)項(xiàng)目投資計(jì)劃書范本
- 新型膜材料及其裝置行業(yè)相關(guān)投資計(jì)劃提議
- 設(shè)備考察報(bào)告怎么寫(共8篇)
- 涉酒案件警示教育心得體會(huì)范文(通用4篇)
- 有機(jī)化學(xué)chapter4導(dǎo)向基引導(dǎo)
- PI形式發(fā)票范文模板
- 北京房產(chǎn)證(共同共有)模板
- 氫氧化鈉安全技術(shù)說明書
- 部編二年級(jí)語文上冊第七單元表格式教案
- 2023光伏電站無人機(jī)智能巡檢技術(shù)標(biāo)準(zhǔn)
- 教師口語藝術(shù)學(xué)習(xí)通超星課后章節(jié)答案期末考試題庫2023年
- 國開電大本科《管理英語3》機(jī)考真題(第三套)
- 同濟(jì)大學(xué)信紙
評(píng)論
0/150
提交評(píng)論