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

正文內(nèi)容

清華c語言程序設(shè)計:第14章繼承(編輯修改稿)

2024-11-12 13:35 本頁面
 

【文章內(nèi)容簡介】 0, Wuhan University, 4), *tptr。 //用基類指針操作對象 pptr = amp。p。 //用基類指針指向基類對象 cout People p: pptrgetName() , (pptrgetSex() ? male : female) endl endl。 pptr = amp。t。 //用基類指針指向派生類對象 coutTeacher t: pptrgetName() , (pptrgetSex()?male:female)endl。 例子 5:用類指針操作基類和派生類對象(8/9) //要調(diào)用定義于派生類中的函數(shù)必須進行類型的強制轉(zhuǎn)換 cout\tin ((Teacher*)pptr)getSchool() for ((Teacher*)pptr)getWorkYears() years. endl endl。 //用派生類指針操作對象 tptr = (Teacher*)amp。p。 //用派生類指針指向基類對象 coutPeople p: tptrgetName() , (tptrgetSex()?male:female)endl。 //危險 , 訪問了不存在的屬性 cout\tin tptrgetSchool() for tptrgetWorkYears() years. endl。 例子 5:用類指針操作基類和派生類對象(9/9) tptr = amp。t。 //用派生類指針指向派生類對象 //調(diào)用基類中定義的函數(shù) coutPeople p: tptrgetName() , (tptrgetSex()?male:female)endl。 cout \tin tptrgetSchool() for tptrgetWorkYears() years.endl。 return 0。 } 程序運行結(jié)果: People p: Zhang San, male Teacher t: Li Si, female in Wuhan University for 4 years. People p: Zhang San, male in ? for 4278034 years. People p: Li Si, female in Wuhan University for 4 years. 類指針 (3/3) ? 常用的程序設(shè)計方法 ? 用數(shù)組或鏈表組織和管理繼承關(guān)系中的各對象 ? 然后用基類指針操作它們 ? 麻煩 ——可能需要類型轉(zhuǎn)換 ? 下一章的多態(tài)性可以解決這個問題 繼承中的構(gòu)造函數(shù)和析構(gòu)函數(shù)(1/2) ? 派生類不繼承基類的構(gòu)造函數(shù)和析構(gòu)函數(shù) ? 派生類和基類的構(gòu)造函數(shù)和析構(gòu)函數(shù)之間是一種自動調(diào)用的關(guān)系 ? 派生類的構(gòu)造函數(shù)需要調(diào)用基類的構(gòu)造函數(shù)對其中定義于基類的數(shù)據(jù)成員進行初始化 ? 顯式調(diào)用(需要傳遞參數(shù)) ? 隱式調(diào)用(不需要傳遞參數(shù)) ? 派生類的析構(gòu)函數(shù)也需要調(diào)用基類的析構(gòu)函數(shù)做一些和基類相關(guān)的清理工作 繼承中的構(gòu)造函數(shù)和析構(gòu)函數(shù)(2/2) ? 構(gòu)造函數(shù)的執(zhí)行順序 ? 先調(diào)用基類的構(gòu)造函數(shù)初始化從基類繼承的數(shù)據(jù)成員 ? 再執(zhí)行自己的函數(shù)體初始化定義于派生類的數(shù)據(jù)成員 ? 析構(gòu)函數(shù)的執(zhí)行順序 ? 派生類的析構(gòu)函數(shù)先執(zhí)行自己的函數(shù)體 ? 再調(diào)用基類的析構(gòu)函數(shù) 例子 6:繼承關(guān)系中構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行順序 (1/5) //文件 //定義類 People if !defined __PEOPLE__H__ define __PEOPLE__H__ class People { public: People(char *str)。 //構(gòu)造函數(shù) ~People()。 //析構(gòu)函數(shù) protected: char *name。 }。 endif 例子 6:繼承關(guān)系中構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行順序 (2/5) //文件 , 類 People的實現(xiàn) include include include //構(gòu)造函數(shù)的實現(xiàn) People::People(char *str) { name = new char[strlen(str)+1]。 strcpy(name, str)。 coutPeople construct: nameendl。 } //析構(gòu)函數(shù)的實現(xiàn) People::~People() { coutPeople destroy: nameendl。 delete []name。 } 例子 6:繼承關(guān)系中構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行順序 (3/5) //文件 //定義類 Teacher include if !defined __TEACHER__H__ define __TEACHER__H__ class Teacher : public People { public: Teacher(char *str, char *sch)。 //構(gòu)造函數(shù) ~Teacher()。 //析構(gòu)函數(shù) protected: char *school。 }。 endif 例子 6:繼承關(guān)系中構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行順序 (4/5) //文件 , 類 Teacher的實現(xiàn) include include include Teacher::Teacher(char *str, char *sch) :People(str) //調(diào)用基類的構(gòu)造函數(shù) { school = new char[strlen(sch)+1]。 strcpy(school,sch)。 coutTeacher construct: name in schoolendl。 } Teacher::~Teacher() { coutTeacher destroy: name in schoolendl。 delete []school。 } 例子 6:繼承關(guān)
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1