freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

面向對象程序設計教程c語言描述下ppt(已修改)

2024-10-28 05:35 本頁面
 

【正文】 第 4章 繼承機制 面向對象程序設計教程( C++語言描述)下 第 4章 繼承機制 第 4章 繼承機制 基類和派生類 單繼承 派生類的訪問控制 多繼承 繼承機制下的構造函數與析構函數 應用實例 第 4章 繼承機制 基類和派生類 返回首頁 繼承和派生的基本概念 繼承的種類 第 4章 繼承機制 繼承和派生的基本概念 通過繼承機制,可以利用已有的數據類型來定義新的數據類型。 根據一個類創(chuàng)建一個新類的過程稱為繼承,也稱派生。新類自動具有原有類的成員,根據需要還可以增加新成員。 派生新類的類稱為基類,又稱父類,而將派生出來的新類稱為派生類,又稱子類。 第 4章 繼承機制 繼承和派生的基本概念 從現存類中派生出新類時,可以對派生類做如下幾種變化: ?增加新的成員變量 ?增加新的成員函數 ?重新定義已有的成員函數 ?改變現有成員的屬性 返回本節(jié) 第 4章 繼承機制 繼承的種類 一個派生類既可以從一個基類派生,也可以從多個基類派生。 從一個基類派生的繼承被稱為單繼承。單繼承形成的類層次是一個倒掛的樹。 從多個基類派生類的繼承被稱為多繼承。多繼承形成的類層次是一個有向無環(huán)圖。 返回本節(jié) 第 4章 繼承機制 單繼承 C++有兩種繼承:單繼承和多繼承,無論哪種繼承,都有公有繼承、私有繼承和保護繼承 3種繼承方式。不同繼承方式,派生類對基類成員擁有不同的訪問權限。 在 C++中,單一繼承的一般形式為: 第 4章 繼承機制 單繼承 class〈派生類名〉:〈繼承方式〉〈基類名〉 { public: 公有數據和函數 protected: 保護數據和函數 private: 私有數據和函數 }。 第 4章 繼承機制 單繼承 〈繼承方式〉 有三種 : public 表示公有繼承方式 private 表示私有繼承方式 protected 表示保護繼承方式 缺省情況下為私有繼承方式。 第 4章 繼承機制 單繼承 【例 】公有繼承方式單繼承的例子。閱讀程序,了解繼承和派生類的基本概念,熟悉單繼承的定義格式。 返回首頁 第 4章 繼承機制 派生類的訪問控制 返回首頁 公有繼承 私有繼承 保護繼承 第 4章 繼承機制 公有繼承 類的派生可以分成公有繼承、私有繼承和保護繼承 3種?;惓蓡T在派生類中的訪問權限與繼承方式及基類成員本身被聲明的訪問權限有關。 繼承中有一種新的訪問權限:不可訪問。 第 4章 繼承機制 公有繼承 公有繼承時,在派生類中,基類的公有成員和保護成員被繼承后分別作為派生類的公有成員和保護成員。 公有派生時,可以通過定義派生類自己的成員函數來訪問派生類繼承來的公有和保護成員,但不能訪問繼承來的私有成員。 第 4章 繼承機制 公有繼承 賦值兼容規(guī)則:是指在公有繼承情況下,一個派生類的對象可以作為基類的對象來使用的地方。 三種情況: ?派生類的對象可以賦給基類的對象 例如: DerivedClass d。 BaseClass b。 b=d。 第 4章 繼承機制 公有繼承 ?派生類的對象可以初始化基類的引用 例如: DerivedClass d。 BaseClassamp。 br=d。 ?派生類的對象的地址可以賦給指向基類的指針 例如: DerivedClass d。 BaseClass* pb=amp。d。 返回本節(jié) 第 4章 繼承機制 私 有繼承 私有繼承時,在派生類中,基類的公有成員和保護成員作為派生類的私有成員,派生類的成員函數可以直接訪問它們,而派生類的成員函數無法直接訪問基類的私有成員。在類外部,派生類的對象無法訪問基類的所有成員。 第 4章 繼承機制 私 有繼承 把例 Point類私有繼承 Circle類: 按下面修改代碼,其它部分不變。 第 4章 繼承機制 私 有繼承 //定義派生類,私有繼承方式 class Circle :private Point { public: void setr(int myx,int myy,int myr) {setxy(myx,myy)。R=myr。} void display()。 protected: int R。 }。 第 4章 繼承機制 私 有繼承 編譯程序,發(fā)現主函數中語句 (7,8)。 出錯。私有繼承使 Point類中的公有成員函數 movexy()的性質發(fā)生了變化。 在派生類 Circle中增加新的外部接口,代碼如下: 返回本節(jié) 第 4章 繼承機制 保護 繼承 【 例 】 演示保護繼承 第 4章 繼承機制 保護 繼承 返回本節(jié) 繼承方式 基類成員 在子類中 訪問權限 子類內部 模塊訪問性 子類對象 訪問性 公有繼承 公有成員 保護成員 私有成員 公有的 保護的 不可訪問 可以訪問 可以訪問 不可訪問 可以訪問 不可訪問 不可訪問 私有繼承 公有成員 保護成員 私有成員 私有成員 私有成員 不可訪問 可以訪問 可以訪問 不可訪問 不可訪問 不可訪問 不可訪問 保護繼承 公有成員 保護成員 私有成員 保護的 保護的 不可訪問 可以訪問 可以訪問 不可訪問 不可訪問 不可訪問 不可訪問 第 4章 繼承機制 多繼承 返回首頁 多繼承的定義格式 二義性和支配規(guī)則 虛基類 第 4章 繼承機制 多繼承的定義格式 一個類從多個基類派生的一般形式是: class〈 派生類名 〉 : 〈 繼承方式 〉〈 基類名1〉 , … , 〈 繼承方式 〉〈 基類名 n〉 { 〈 定義派生類自己的成員 〉 }; 第 4章 繼承機制 多繼承的定義格式 【 例 】 閱讀程序,了解多繼承的定義格式,進一步熟悉基類成員在派生類中的訪問權限。 返回本節(jié) 第 4章 繼承機制 二義性和支配規(guī)則 多繼承時,可能會造成派生類對基類成員訪問的不唯一性,即二義性。 【例 】下面程序調用了不同基類的相同成員,分析程序中出現的二義性。 第 4章 繼承機制 二義性和支配規(guī)則 主函數 main( ) 的語句 ( )中,對象 obj調用哪個 show( )函數存在二義性。 若要消除二義性 : ?使用作用域運算符 例如: ::show( )。 ::show( )。 第 4章 繼承機制 二義性和支配規(guī)則 ?通過在派生類 Derivedclass中定義一個新函數 show( ) 例 如: void Derivedclass::show( ) { Baseclass1::show( )。 Baseclass2::show( )。 } 第 4章 繼承機制 二義性和支配規(guī)則 類 X中的名字 N支配類 Y中同名的名字 N,是指類 X以類 Y為它的一個基類,這被稱為支配規(guī)則。 Bas e c l as s 1 { a, s e t a( ), s h o w ( )} Bas e c l as s 2 { b , s e t b ( ), s h o w ( )} D e ri v e d c l as s { c , s h o w ( )} 第 4章 繼承機制 二義性和支配規(guī)則 如果一個派生類從多個基類派生,而這些基類又有一個共同的基類,則在這個派生類中訪問這個共同的基類中的成員時可能會產生二義性。 【例 】下面程序訪問了共同基類的成員,分析程序中出現的二義性。 第 4章 繼承機制 二義性和支配規(guī)則 Base{val} Base{val}Baseclass1{seta( )} Baseclass2{setb( )}Derivedclass{show( )}第 4章 繼承機制 二義性和支配規(guī)則 從圖可以看出, Derivedclass的對象包含基類 Base的兩個基類子對象:一個是由 Baseclass1路徑產生的,另一個是由 Baseclass2路徑產生的。 【 例 】 示例 Derivedclass的對象包含基類Base的兩個基類子對象 第 4章 繼承機制 二義性和支配規(guī)則 由于二義性原因 , 一個類不能從同一個類中直接繼承一次以上 。 如果必須這樣做 ,可以使用一個中間類 。 二義性檢查是在訪問權限檢查之前進行的 , 因此 , 成員的訪問權限是不能解決兩義性問題的 。 返回本節(jié) 第 4章 繼承機制 虛基類 引進虛基類的目的是為了解決二義性問題 ,使得公共基類在它的派生類對象中只產生一個基類子對象 。 虛基類說明格式如下: virtual 繼承方式 基類名 其中 , virtual是說明虛基類的關鍵字 。 虛基類的說明是用在定義派生類時 , 寫在派生類名的后面 。 例如: 第 4章 繼承機制 虛基類 class Baseclass1:visual public Base { public: void seta(int x){val=x。} }。 class Baseclass2:visual public Base { public: void setb(int x){val=x。} }。 第 4章 繼承機制 虛基類 Base{val}Baseclass1{seta( )} Baseclass2{setb( )}Derivedclass{show( )}返回本節(jié) 第 4章 繼承機制 繼承機制下的構造函數與析構函數 返回首頁 繼承機制下構造函數的調用順序 派生類構造函數的規(guī)則 繼承機制下析構函數的調用順序 第 4章 繼承機制 繼承機制下構造函數的調用順序 〈 派生類名 〉 :: 〈 派生類名 〉 ( 〈 總參數表 〉 ): 〈 基類名 1〉 ( 〈 參數表 1〉 ), … , 〈 基類名 n〉 ( 〈 參數表 n〉 ) { 〈 派生類中數據成員初始化 〉 }; 第 4章 繼承機制 繼承機制下構造函數的調用順序 1. 單繼承機制下構造函數的調用順序 當說明派生類的一個對象時,首先調用基類的構造函數,對基類成員進行初始化,然后執(zhí)行派生類的構造函數,如果某個基類仍是一個派生類,則這個過程遞歸進行。 【 例 】 分析程序的輸出結果,理解繼承中構造函數的調用順序。 第 4章 繼承機制 繼承機制下構造函數的調用順序 【 例 】 分析程序的輸出結果,理解派生類包括子對象時,其構造函數的調用順序。 第 4章 繼承機制 繼承機制下構造函數的調用順序 2.多繼承機制下構造函數的調用順序 多繼承方式下派生類的構造函數須同時負責該派生類所有基類構造函數的調用。 構造函數調用順序是:先調用所有基類的構造函數,再調用派生類的構造函數。 處于同一層次的各基類構造函數的調用順序取決于定義派生
點擊復制文檔內容
教學課件相關推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1