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

正文內(nèi)容

程序設計實習(已修改)

2025-08-01 07:03 本頁面
 

【正文】 程序設計實習 第十四講 繼承 內(nèi)容提要 ? 基本概念:繼承、基類、派生類 ? 派生類的成員組成、可見性 ? 派生類的構(gòu)造、析構(gòu) ? 派生類與基類的指針類型轉(zhuǎn)換 繼承與派生的概念 ? 繼承:在定義一個新的類 B時,如果該類與某個已有的類 A相似 (指的是 B擁有 A的全部特點 ),那么就可以把 A作為一個 基類 ,而把 B作為基類的一個 派生類 (也稱子類 )。 ? 派生類是通過對基類進行修改和擴充得到的。在派生類中,可以擴充新的成員變量和成員函數(shù)。 ? 派生類一經(jīng)定義后,可以獨立使用,不依賴于基類。 ? 派生類擁有基類的全部成員,包括: (private、protected、 public)屬性和 (private、 protected、 public)方法。 ? 在派生類的各個成員函數(shù)中,不能訪問基類中的private成員。 需要繼承機制的例子: ?所有的學生都有一些共同屬性和方法,比如姓名,學號,性別,成績等屬性,判斷是否該留級,判斷是否該獎勵之類的方法。 ?而不同的學生,比如中學生,大學生,研究生,又有各自不同的屬性和方法,比如大學生有系的屬性,而中學生沒有,研究生有導師的屬性,中學生競賽、特長加分之類的屬性。 ?如果為每類學生都編寫一個類,顯然會有不少重復的代碼,浪費。 ?比較好的做法是編寫一個“學生”類,概括了各種學生的共同特點,然后從“學生”類派生出“大學生”類,“中學生”類,“研究生類”。 class CStudent { private: char szName[20]。 int nAge。 int nSex。 public: bool IsThreeGood() { }。 int SetSex( int nSex_ ) { nSex = nSex_ 。 } void SetName( char * szName_ ) { strcpy( szName,szName_)。 } //...... }。 class CUndergraduateStudent: public CStudent { private: int nDepartment。 public: bool IsThreeGood { ...... }。 //覆蓋 bool CanBaoYan() { .... }。 } // 派生類的寫法是:類名 : public 基類名 class CGraduatedStudent:public CStudent { private: int nDepartment。 char szMentorName[20]。 public: int CountSalary() { ... }。 }。 復合與繼承 ? 繼承:“是”關系。 ? 基類 A, B是基類 A的派生類。 邏輯上要求:“一個 B對象也 是 一個 A對象”。 ? 復合:“有”關系。 ? 復合,即一個類的對象擁有作為其成員的其它類的對象。 ? 類 C, d是類 D的一個對象。復合關系滿足: C類中 “有” 成員對象 d。 繼承的使用 ?如果寫了一個 CMan 類代表男人,后來又發(fā)現(xiàn)需要一個 CWoman類來代表女人,僅僅因為 CWoman類和 CMan類有共同之處,就讓 CWoman類從 CMan類派生而來,是不合理的。因為“一個女人也是一個男人”從邏輯上不成立。 ?好的做法是概括男人和女人共同特點,寫一個 CHuman類,代表“人” ,然后 CMan和 CWoman都從CHuman派生。 繼承的使用 ? 如果要寫一個小區(qū)養(yǎng)狗管理程序, 需要寫一個 “業(yè)主” 類,還需要寫一個 “狗” 類 。 ? 而狗是有 “主人” 的,主人當然是業(yè)主 ; ? 那么 , 能否讓 “狗” 從 “業(yè)主” 派生出來? ? 一個比較好的做法是: 為 “狗” 類設一個“業(yè)主”類的成員對象 ; 為 “業(yè)主” 類設一個“狗”類的對象數(shù)組。 繼承 ? 派生類可以定義一個和基類成員同名的成員,這叫 覆蓋 。在派生類中訪問這類成員時,缺省的情況是訪問派生類中定義的成員。要在派生類中訪問由基類定義的 同名 成員時,要使用 作用域符號 ::。 void derived::access() { j = 5。 //error i = 5。 //引用的是派生類的 i base::i = 5。 //引用的是基類的 i func()。 //派生類的 base::func()。 //基類的 } derived obj。 = 1。 ::i = 1。 Bas
點擊復制文檔內(nèi)容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1