派生類的概念.ppt_第1頁
派生類的概念.ppt_第2頁
派生類的概念.ppt_第3頁
派生類的概念.ppt_第4頁
派生類的概念.ppt_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、,教學(xué)目的與要求: 了解什么是繼承和派生。 掌握派生類的創(chuàng)建過程和派生方式 教學(xué)內(nèi)容提要: 1、 為什么要使用繼承; 2、單基派生類的聲明; 3、基類成員在派生類中訪問屬性 4、派生類對基類成員的訪問 教學(xué)重點:單繼承的派生類的定義方式和派生方式 教學(xué)難點:單繼承的派生類的定義方式和派生方式 教學(xué)進度:P111P123 教學(xué)過程:,第 12 講 派生類的概念,事物的共性與特性,【 12.1 為什么要使用繼承】,圖 單繼承與多繼承,通過單繼承派生一個類的一般形式如下: class 派生類名:派生方式 基類名 派生類新增加的數(shù)據(jù) 成員和成員函數(shù) ;,【12.2 單繼承的派生類聲明】,例如: cla

2、ss baseclass int a,b; public: /公有成員 ;,例如: class subclass:public baseclass int c; public: /公有成員 ;,從已有類派生出新類時,可以在派生類內(nèi)完成以下幾種功能: (1) 可以增加新的數(shù)據(jù)成員; (2) 可以增加新的成員函數(shù); (3) 可以重新定義基類中已有的成員函數(shù); (4) 可以改變現(xiàn)有成員的屬性。,基類的公有成員和保護成員被派生類繼承過來,作為派生類的公有成員和保護成員;但基類的私有成員在派生類中不能直接使用。,簡述,【 12.3.1 公有派生】,【 12.3 基類成員在派生類中的訪問屬性】,例 12-

3、1,void main() B b; b.setx(2); b.sety(3); coutX=b.getx()tY= b.gety()endl; coutX+Y=b.getsum()endl; ,基類的公有成員和保護成員被派生類繼承過來,作為派生類的私有成員;而基類的私有成員在派生類中不能直接使用。,簡述,【 12.3.2 私有派生】,例 12-2,int getBx()return getx(); int getBy()return gety(); int getsum()return x+gety(); ; void main() B b; coutX=b.getBx()tY=b.getB

4、y()endl; coutX+Y=b.getsum()endl; ,(續(xù)),b.setBx(2); b.setBy(3);,b.setx(2); /error b.sety(3); /error,例 12-3,#include class A public: void setx(int a)x=a; void sety(int b)y=b; int getx() constreturn x; int gety() constreturn y;,基類的公有成員和保護成員被派生類繼承過來,作為派生類的保護成員;而基類的私有成員在派生類中不能直接使用。,簡述,【 12.3.3 保護派生】,prote

5、cted: int x; private: int y; ; class B: protected A public: void setBx(int a)setx(a); void setBy(int b)sety(b); int getBx()return getx(); int getBy()return gety(); int getsum()return x+gety(); ; void main() B b; b.setBx(2);,例 12-3,b.setBy(3); coutX=b.getBx()tY=b.getBy()endl; coutX+Y=b.getsum()endl;

6、,(續(xù)),表 不同派生類型中相應(yīng)基類及派生類的訪問特性,派生類對基類成員的訪問形式主要有以下兩種: (1) 內(nèi)部訪問: 由派生類中新增成員對基類繼承來的成員的訪問。 (2) 對象訪問: 在派生類外部,通過派生類的對象對從基類繼承來的成員的訪問。,【 12.4 派生類對基類成員的訪問規(guī)則 】,1. 私有繼承的訪問規(guī)則 當(dāng)類的繼承方式為私有繼承時,基類的public成員和protected成員被繼承后作為派生類的private成員,派生類的其他成員可以直接訪問它們,但是在類外部通過派生類的對象無法訪問。 基類的private成員在私有派生類中是不可直接訪問的,所以無論是派生類成員還是通過派生類的對

7、象,都無法直接訪問從基類繼承來的private成員,但是可以通過基類提供的public成員函數(shù)間接訪問。 教材4.1一個私有繼承的例子,2. 公有繼承的訪問規(guī)則 當(dāng)類的繼承方式為公有繼承時,基類的public成員和protected成員被繼承到派生類中仍作為派生類的public成員和protected成員,派生類的其他成員可以直接訪問它們。但是,類的外部使用者只能通過派生類的對象訪問繼承來的public成員。 基類的private成員在私有派生類中是不可直接訪問的,所以無論是派生類成員還是通過派生類的對象,都無法直接訪問從基類繼承來的private成員,但是可以通過基類提供的public成員函

8、數(shù)間接訪問它們。 教材例4.3 公有繼承的訪問規(guī)則,表 私有繼承的訪問規(guī)則,3. 保護繼承的訪問規(guī)則 當(dāng)類的繼承方式為保護繼承時,基類的public成員和protected成員被繼承到派生類中都作為派生類的protected成員,派生類的其他成員可以直接訪問它們,但是類的外部使用者不能通過派生類的對象來訪問它們。 基類的private成員在私有派生類中是不 可直接訪問的,所以無論是派生類成員還是通過派生類的對象,都無法直接訪問基類的private成員。 教材例4.4 保護繼承的訪問規(guī)則。,表 公有繼承的訪問規(guī)則,在程序的任何部分如果聲明有一個類的對象,就可以通過這個對象訪問對象所屬類中的所有公有成員,但不能訪問其私有和保護成員;而一個派生類的函數(shù)成員則可以訪問所屬類中的新聲明的所有成

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論