![c學(xué)習(xí)清華大學(xué)五PPT學(xué)習(xí)教案_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/9/128a0475-e698-43fb-9fa1-f8feec6e9705/128a0475-e698-43fb-9fa1-f8feec6e97051.gif)
![c學(xué)習(xí)清華大學(xué)五PPT學(xué)習(xí)教案_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/9/128a0475-e698-43fb-9fa1-f8feec6e9705/128a0475-e698-43fb-9fa1-f8feec6e97052.gif)
![c學(xué)習(xí)清華大學(xué)五PPT學(xué)習(xí)教案_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/9/128a0475-e698-43fb-9fa1-f8feec6e9705/128a0475-e698-43fb-9fa1-f8feec6e97053.gif)
![c學(xué)習(xí)清華大學(xué)五PPT學(xué)習(xí)教案_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/9/128a0475-e698-43fb-9fa1-f8feec6e9705/128a0475-e698-43fb-9fa1-f8feec6e97054.gif)
![c學(xué)習(xí)清華大學(xué)五PPT學(xué)習(xí)教案_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/9/128a0475-e698-43fb-9fa1-f8feec6e9705/128a0475-e698-43fb-9fa1-f8feec6e97055.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、會(huì)計(jì)學(xué)1c學(xué)習(xí)清華大學(xué)五學(xué)習(xí)清華大學(xué)五2第1頁(yè)/共45頁(yè)3第2頁(yè)/共45頁(yè)4例:定義交通工具類,并從交通工具類派生出小汽車?yán)憾x交通工具類,并從交通工具類派生出小汽車類和卡車類類和卡車類 現(xiàn)實(shí)世界的事物多種多樣,許多事物都存在著層次關(guān)系,這種層次關(guān)系使我們找到了描述事物的解決方法。如下圖是關(guān)于交通工具的一個(gè)分類層次關(guān)系圖。第3頁(yè)/共45頁(yè)5 類的層次結(jié)構(gòu)圖中,下層類是上層類的特殊類; 下層類自動(dòng)具有上層類的特性,同時(shí)也具有自身新的特性; 越往層次結(jié)構(gòu)圖的下層,其特性越具體化 這種從上到下的層次結(jié)構(gòu)關(guān)系體現(xiàn)了繼承與派生的過程; C+面向?qū)ο蠹夹g(shù)也采用了這種繼承機(jī)制。第4頁(yè)/共45頁(yè)6 派生類是
2、在基類的基礎(chǔ)上產(chǎn)生的特殊類,派生類自動(dòng)繼承了基類的成員; 派生類具有自身的屬性和行為,不然就完全等同于基類,這樣就沒有必要派生新類; 繼承是為了避免代碼的重復(fù); 派生是為了使新產(chǎn)生的派生類除具有基類的共性之外,還具有其他個(gè)性。 第5頁(yè)/共45頁(yè)71.1.派生類的定義格式派生類的定義格式public:公有派生private:私有派生protected:保護(hù)派生規(guī)定基類成員在派生類中的訪問權(quán)限缺省情況下表示缺省情況下表示private方式。方式。第6頁(yè)/共45頁(yè)8class Student public: void display ( ); private: int num; char name1
3、0; char sex;基類定義基類定義第7頁(yè)/共45頁(yè)9第8頁(yè)/共45頁(yè)10派生類的生成過程經(jīng)歷了三個(gè)步驟: 吸收基類成員吸收基類成員 改造基類成員改造基類成員 添加派生類新成員添加派生類新成員第9頁(yè)/共45頁(yè)11在C+的繼承機(jī)制中,派生類吸收基類中除構(gòu)造函數(shù)和析構(gòu)函數(shù)之外的全部成員。 吸收基類成員是一個(gè)重用的過程,體現(xiàn)了代碼的重用 第10頁(yè)/共45頁(yè)12 由于基類的部分成員在派生類中可能不需要卻也被繼承下來,對(duì)這些沒有實(shí)際需要而被繼承的成員,在派生類中需要對(duì)其進(jìn)行改造。改造基類成員包括兩個(gè)方面:(1) 通過派生的三種繼承方式來控制;通過派生的三種繼承方式來控制;(2) 通過在派生類中定義同
4、名成員(包括成員通過在派生類中定義同名成員(包括成員函數(shù)和數(shù)據(jù)成員)來屏蔽在派生類中不起作用函數(shù)和數(shù)據(jù)成員)來屏蔽在派生類中不起作用的部分基類成員。的部分基類成員。第11頁(yè)/共45頁(yè)13添加派生類的新成員是繼承機(jī)制的核心內(nèi)容。 僅僅繼承基類的成員是不夠的,需要在派生類中添加新成員,以保證派生類自身特殊屬性和行為的實(shí)現(xiàn)。 第12頁(yè)/共45頁(yè)14根據(jù)派生類的定義格式可知,有三種繼承方式。 public protected private第13頁(yè)/共45頁(yè)15由一個(gè)類生成的對(duì)象,它只能訪問類的公有成員,不能訪問其它成員:而一個(gè)類的成員函數(shù)可以訪問類中所有成員!第14頁(yè)/共45頁(yè)16 當(dāng)類的繼承方式為
5、public(公有)繼承屬性時(shí),在派生類中,基類的公有成員和保護(hù)成基類的公有成員和保護(hù)成員被繼承后其訪問屬性沒有變化員被繼承后其訪問屬性沒有變化,即分別作為派生類的公有成員和保護(hù)成員,派生類的成員派生類的成員可以直接訪問它們可以直接訪問它們。但是,在公有繼承時(shí)派生派生類的成員無法訪問基類的私有成員類的成員無法訪問基類的私有成員。 第15頁(yè)/共45頁(yè)17特別提示第16頁(yè)/共45頁(yè)18第17頁(yè)/共45頁(yè)19class student private: int age; protected: char sex; public: int Getage( ); ;class graduatestuden
6、t: public student private: int stunum; public: int Getnum( ); ;公有繼承特點(diǎn):基類的公有成員和保護(hù)成員作為派生類的成員時(shí),都保持原有狀態(tài),而私有成員仍是私有。第18頁(yè)/共45頁(yè)20公有繼承第19頁(yè)/共45頁(yè)21公有繼承第20頁(yè)/共45頁(yè)22在派生類中,基類的公有成員和保護(hù)成員作為派基類的公有成員和保護(hù)成員作為派生類的私有成員,派生類的成員可以直接訪問它們生類的私有成員,派生類的成員可以直接訪問它們,而派生類的成員無法訪問基類的私有成員;而派生類的成員無法訪問基類的私有成員;在派生類的外部,派生類的成員和派生類的對(duì)象均無法訪問基類的全
7、部成員;私有繼承之后,全部基類成員在派生類中都成為了私有成員或不可訪問的成員,無法進(jìn)一步派生;私有繼承方式一般很少使用。 第21頁(yè)/共45頁(yè)23特別提示第22頁(yè)/共45頁(yè)242。私有繼承第23頁(yè)/共45頁(yè)25特點(diǎn):基類的公有成員和保護(hù)成員都作為派生類的私有成員,并且不能被這個(gè)派生類的子類所訪問。2 私有繼承class student private: int age; protected: char sex; public: int Getage( ); ;class graduatestudent: private student private: int stunum; public: i
8、nt Getnum( ); ;第24頁(yè)/共45頁(yè)262 私有繼承第25頁(yè)/共45頁(yè)272 私有繼承第26頁(yè)/共45頁(yè)28當(dāng)類的繼承方式為protected繼承屬性時(shí),在派生類中,基類的公有成員和保護(hù)成員均作為派生類的?;惖墓谐蓡T和保護(hù)成員均作為派生類的保護(hù)成員,派生類的成員可以直接訪問它們,護(hù)成員,派生類的成員可以直接訪問它們,而派生類的成員無法訪問基類的私有成員。在派生類的外部,派生類的成員和派生類的對(duì)象均無法訪問基類的全部成員。如果基類只進(jìn)行了一次派生,則保護(hù)繼承和私有繼承的功能完全相同,但保護(hù)繼承可以進(jìn)一步派生,保護(hù)繼承可以進(jìn)一步派生,而私有繼承則不可以,兩者具有實(shí)質(zhì)性差別而私有繼承
9、則不可以,兩者具有實(shí)質(zhì)性差別。 第27頁(yè)/共45頁(yè)29第28頁(yè)/共45頁(yè)30 基類的所有公有成員和保護(hù)成員都作為派生類的保護(hù)成員,并且只能被它的派生類成員函數(shù)訪問,基類的私有成員仍是私有的。保護(hù)繼承保護(hù)繼承class student private: int age; protected: char sex; public: int Getage( ); ;class graduatestudent: protected student private: int stunum; public: int Getnum( );第29頁(yè)/共45頁(yè)311.3 保護(hù)繼承保護(hù)繼承第30頁(yè)/共45頁(yè)32vo
10、id main( ) graduatestudent zh; /生成派生類對(duì)象 /( );/ 即:即:student:Getage( ); 不能不能訪問 ( ); /訪問派生類中的公開成員 /cout; /即:即:student:sex,error 私有成員私有成員 /cout; /error 私有成員私有成員 /cout; /即:即:student:age,error1.3 保護(hù)繼承保護(hù)繼承第31頁(yè)/共45頁(yè)33 公有成公有成員員 私有成私有成員員 保護(hù)成保護(hù)成員員公有繼承公有繼承公有公有不可訪問不可訪問保護(hù)保護(hù)私有繼承私有繼承私有私有不可訪問不可訪問私有私有保護(hù)繼承保護(hù)繼承保護(hù)保護(hù)不可訪問
11、不可訪問保護(hù)保護(hù)第32頁(yè)/共45頁(yè)34基類的構(gòu)造函數(shù)的功能是創(chuàng)建基類對(duì)象并進(jìn)行初始化,而析構(gòu)函數(shù)的功能在基類對(duì)象生存期結(jié)束時(shí)對(duì)基類對(duì)象進(jìn)行必要的清理工作。在派生類的生成過程中,派生類將產(chǎn)生新的成員,對(duì)新增數(shù)據(jù)成員的初始化需要由派生類自身的構(gòu)造函數(shù)完成,而對(duì)派生類對(duì)象的清理工作需要由相應(yīng)的析構(gòu)函數(shù)完成。第33頁(yè)/共45頁(yè)35派生類的數(shù)據(jù)成員既包括基類的數(shù)據(jù)成員,也包括派生類新增數(shù)據(jù)成員。派生類構(gòu)造函數(shù)在對(duì)派生類對(duì)象進(jìn)行初始派生類構(gòu)造函數(shù)在對(duì)派生類對(duì)象進(jìn)行初始化時(shí)需要對(duì)基類數(shù)據(jù)成員、新增數(shù)據(jù)成員和內(nèi)化時(shí)需要對(duì)基類數(shù)據(jù)成員、新增數(shù)據(jù)成員和內(nèi)嵌對(duì)象成員進(jìn)行初始化。嵌對(duì)象成員進(jìn)行初始化。 在定義派生類的
12、構(gòu)造函數(shù)時(shí)除了對(duì)自己的數(shù)據(jù)成員進(jìn)行初始化外,還必須調(diào)用必須調(diào)用基類的構(gòu)造函數(shù)初始化基類的數(shù)據(jù)成員 第34頁(yè)/共45頁(yè)36派生類名:派生類名派生類名:派生類名 (總參數(shù)表總參數(shù)表):基類名(:基類名(參數(shù)表參數(shù)表1),對(duì)象成員名對(duì)象成員名(參數(shù)表參數(shù)表2) 派生類新增成員的初始化派生類新增成員的初始化; 第35頁(yè)/共45頁(yè)37派生類構(gòu)造函數(shù)的調(diào)用順序如下:基類的構(gòu)造函數(shù)對(duì)象成員類的構(gòu)造函數(shù)(若有)派生類構(gòu)造函數(shù)注意:1、若基類中未定義帶參數(shù)構(gòu)造函數(shù),則派生類構(gòu)造函數(shù)的定義中可以省略對(duì)基類構(gòu)造函數(shù)的調(diào)用。2、若基類的構(gòu)造函數(shù)使用了參數(shù),則派生類必須定義構(gòu)造函數(shù),為基類構(gòu)造函數(shù)提供參數(shù)。第36頁(yè)/共
13、45頁(yè)38#include class Basepublic: Base()coutBase Constructorendl;class DeriveA:public Basepublic: DeriveA()coutDeriveA Constructorendl;class DeriveB:public DeriveApublic: DeriveB()coutDeriveB Constructorendl;void main() DeriveB B;第37頁(yè)/共45頁(yè)39#includeclass Baseprivate: int n; double a;public: Base(int x
14、1,double x2) n=x1;a=x2; coutCall A Destructorendl; coutn=nendl; couta=aendl; Base();第38頁(yè)/共45頁(yè)40class Derive:public Baseprivate: int m; double b;public: Derive(int x1=10,double x2=20,int y1=218,double y2=288.8):Base(x1,x2),m(y1),b(y2) coutCall B Destructorendl; coutm=mendl; coutb=bendl; Derive();void
15、 main() Derive obj1;第39頁(yè)/共45頁(yè)41class data int x; public: data(int x) data:x = x; coutclass datan; ; class A data d1; public: A(int x) : d1(x) coutclass An;運(yùn)行結(jié)果運(yùn)行結(jié)果:class dataclass Aclass dataclass Bclass Cclass B : public A data d2; public: B(int x) : A(x),d2(x) coutclass Bn;class C : public B publi
16、c: C(int x) : B(x) coutclass Cn; ;void main( ) C object(5); 派生類的構(gòu)造函數(shù)派生類的構(gòu)造函數(shù)第40頁(yè)/共45頁(yè)42,因此在執(zhí)行派生類的析構(gòu)函數(shù)時(shí),基類的析構(gòu)函數(shù)也將被調(diào)用。析構(gòu)函數(shù)調(diào)用的順序與構(gòu)造函數(shù)相反.2派生類的析構(gòu)函數(shù)派生類的析構(gòu)函數(shù)class M public: M()m1=m2=0; M(int i,int j)m1=i;m2=j; void print() coutm1,m2,; M() coutMs destructor called.n; private: int m1,m2; ;第41頁(yè)/共45頁(yè)43 void pr
17、int( ) M:print( );coutnendl; N( ) c o u t N s d e s t r u c t o r called.n; private: int n; 5,6,75,6,7-2,-3,-4-2,-3,-4Ns destructor called.Ms destructor called.Ns destructor called.Ms destructor called.N:N(int i,int j, int k):M(i,j),n(k) void main( ) N n1(5,6,7),n2(-2,-3,-4); n1.print(); n2.print(); 第42頁(yè)/共45頁(yè)44#includeclass BaseAint x;public:BaseA(int i)x=i;coutConstructing o
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 木工班合同(二次結(jié)構(gòu))
- 2025年度辦事處裝修與辦公家具采購(gòu)及維護(hù)服務(wù)合同
- 2025年度辦公室文件消毒與消毒劑研發(fā)與品牌合作合同
- 2025年度安全生產(chǎn)應(yīng)急處理與事故處理服務(wù)合同
- 報(bào)社陽(yáng)臺(tái)照明設(shè)備節(jié)能改造合同2025
- 2025年也門文版辦公室租賃合同(含品牌形象推廣)
- 藝術(shù)館花園整修合同樣本
- 消防二次改造施工合同
- 三農(nóng)村醫(yī)療衛(wèi)生服務(wù)規(guī)范指南
- 三農(nóng)田管理最佳實(shí)踐方案與指南
- 北師大版小學(xué)二年級(jí)數(shù)學(xué)上冊(cè)期末試卷共9套-完整版
- 數(shù) 學(xué)2024-2025學(xué)年人教版七年級(jí)數(shù)學(xué)上冊(cè)有理數(shù)混合運(yùn)算100題
- 2024年銀行考試-農(nóng)村信用社考試近5年真題附答案
- 人教版小學(xué)數(shù)學(xué)四年級(jí)下冊(cè)第一單元測(cè)試卷附答案(共9套)
- 二年級(jí)上冊(cè)100以內(nèi)加減法豎式計(jì)算題200道及答案
- 新滬科版八年級(jí)物理第三章光的世界各個(gè)章節(jié)測(cè)試試題(含答案)
- 人教版五年級(jí)上冊(cè)四則混合運(yùn)算300道及答案
- 非遺國(guó)粹川劇變臉的傳統(tǒng)文化知識(shí)了解原創(chuàng)模板
- 統(tǒng)編版六年級(jí)下冊(cè)道德與法治1-學(xué)會(huì)尊重-課件(54張課件)
- 5.5.1三角恒等變換(第一課時(shí))課件高一上學(xué)期數(shù)學(xué)人教A版
- 中國(guó)智慧物流發(fā)展報(bào)告
評(píng)論
0/150
提交評(píng)論