章繼承與派生PPT課件_第1頁(yè)
章繼承與派生PPT課件_第2頁(yè)
章繼承與派生PPT課件_第3頁(yè)
章繼承與派生PPT課件_第4頁(yè)
章繼承與派生PPT課件_第5頁(yè)
已閱讀5頁(yè),還剩30頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 一、一、繼承與派生的基本概念繼承與派生的基本概念 1 1繼承的概念 在C+C+語(yǔ)言中,可以從一個(gè)類派生出另一個(gè)類。派生出其它類的類稱為基類,又稱為父類。被派生的類稱為派生類,又稱為子類。派生類可以具有基類的特性,共享基類的成員函數(shù),使用基類的數(shù)據(jù)成員,還可以定義自己的數(shù)據(jù)成員和成員函數(shù)。一個(gè)派生類可以從一個(gè)基類派生,也可以從多個(gè)基類派生。從一個(gè)基類派生的繼承稱為單繼承;從多個(gè)基類派生的繼承稱為多繼承。 第1頁(yè)/共35頁(yè) 一、一、繼承與派生的基本概念繼承與派生的基本概念 2派生類的定義格式單繼承的定義格式如下:class :public: members; /派生類新定義成員 members;

2、 members;第2頁(yè)/共35頁(yè) 一、一、繼承與派生的基本概念繼承與派生的基本概念 多繼承的定義格式如下:class :, public: /派生類新定義成員 members; members; members;第3頁(yè)/共35頁(yè)二、繼承的基本方式二、繼承的基本方式繼承方式主要表示派生類繼承基類時(shí)采用的繼承方式,主要有三種,即公有繼承、私有繼承和保護(hù)繼承。1公有繼承(public)公有繼承的特點(diǎn)是基類的公有成員和保護(hù)成員作為派生類的成員時(shí)都保持原有的狀態(tài),而基類的私有成員仍然是私有的。第4頁(yè)/共35頁(yè)二、繼承的基本方式二、繼承的基本方式例11.1:#includeclass A private

3、: int x; public: void setx(int i)x=i; void showx() coutxendl;第5頁(yè)/共35頁(yè)class B:public A private:int y; public:void sety(int i)y=i;void showy() showx(); coutyendl;第6頁(yè)/共35頁(yè)void main() B b;b.setx(10);b.sety(20);b.showy();第7頁(yè)/共35頁(yè)二、繼承的基本方式二、繼承的基本方式2私有繼承(私有繼承(private) 私有繼承的特點(diǎn)是基類的公有成員和保護(hù)成員作為派生類的私有成員,并且不能被這個(gè)

4、派生類的子類訪問(wèn)。第8頁(yè)/共35頁(yè)二、繼承的基本方式二、繼承的基本方式例11.2#includeclass A private: int x; public: void setx(int i)x=i; void showx()coutxendl;第9頁(yè)/共35頁(yè)class B:private A private:int y; public:void sety(int m,int n) setx(m); y=n;void showxy() showx(); coutyendl;第10頁(yè)/共35頁(yè)void main() A a;a.setx(10);a.showx();B b;b.sety(10,

5、20);b.showx(); b.showxy();第11頁(yè)/共35頁(yè)二、繼承的基本方式二、繼承的基本方式3. 保護(hù)繼承(保護(hù)繼承(protected) 保護(hù)繼承的特點(diǎn)是基類的所有公有成員和保護(hù)成員都成為派生類的保護(hù)成員,并且只能被它的派生類成員函數(shù)或友元訪問(wèn),基類的私有成員仍然是私有的。第12頁(yè)/共35頁(yè)例11.3#includeclass Aprivate: int x; public: void setx(int i)x=i; void showx()coutxendl;第13頁(yè)/共35頁(yè)class B:protected A private:int y; public:void set

6、y(int m,int n) setx(m); y=n;第14頁(yè)/共35頁(yè)void showxy() showx(); coutyendl;第15頁(yè)/共35頁(yè)class C:private B public: void set(int m) setx(m); void show() showx(); ;第16頁(yè)/共35頁(yè)void main() A a; a.setx(10); a.showx(); B b; b.sety(10,20); b.showxy(); C c; c.set(50); c.show();第17頁(yè)/共35頁(yè)練習(xí):編一個(gè)設(shè)定長(zhǎng)方形邊長(zhǎng)的類,利用繼承機(jī)制求長(zhǎng)方形的面積及周長(zhǎng)。

7、第18頁(yè)/共35頁(yè)#includeclass lengprotected: int x,y; public: void init(int a,int b) x=a; y=b;第19頁(yè)/共35頁(yè)class area:public leng private:int s,t; public:void setarea() s=x*y; void setgirth() t=2*(x+y);第20頁(yè)/共35頁(yè)void show() coutarea=sendl; coutgirth=tendl;void main() area m; m.init(5,8); m.setarea (); m.setgirt

8、h (); m.show ();第21頁(yè)/共35頁(yè)三、多繼承三、多繼承有多個(gè)基類的派生類的繼承稱為多繼承。多繼承可以看作是單繼承的擴(kuò)展。多繼承的定義格式如下:class:, ;第22頁(yè)/共35頁(yè)例:#includeclass B1 private: int b1; public: void setb1(int i) b1=i; void showb1() cout“b1=“b1endl; ;第23頁(yè)/共35頁(yè)class B2 private: int b2; public: void setb2(int i) b2=i; void showb2() cout“b2=“b2endl; ;第24頁(yè)

9、/共35頁(yè)class D:public B1,public B2 private: int d; public: void setd(int i,int j) d=i; setb2(j); 第25頁(yè)/共35頁(yè) void showd() showb2(); cout“d=“dendl; ;第26頁(yè)/共35頁(yè) void main() D objd; objd.setb1(10); objd.showb1(); objd.setd(15,20); objd.showd(); 第27頁(yè)/共35頁(yè)#includeclass A1 private: int x1,x2; public: void init

10、1(int n1,int n2)x1=n1,x2=n2;第28頁(yè)/共35頁(yè) void set1() x1+; x2-; void show1() coutx1=x1endl; coutx2=x2endl; ;第29頁(yè)/共35頁(yè)class A2:public A1 private: int x3; public: void init2(int n)x3=n; void set2() x3=x3*x3; 第30頁(yè)/共35頁(yè) void show2() show1(); coutx3=x3endl; ;第31頁(yè)/共35頁(yè)class A3:public A2private: int x4;public: void init3(int n)x4=n; void set3() x4=x4*3; void show3() show1(); show2(); coutx4=x4endl; ;第32頁(yè)/共35頁(yè)void main() A1 m; m.init1(3,7); m.set1(); m.show1(); A3 t; t.init2(15); t.init3(5); t.set2(); t.set3(); t.show3();第33頁(yè)/共3

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論