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

正文內(nèi)容

程序設(shè)計(jì)實(shí)習(xí)(已修改)

2025-08-01 07:03 本頁面
 

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