C++繼承與組合詳解
我們知道,在一個類中可以用類對象作為數據成員,即子對象(詳情請查看:C++有子對象的派生類的構造函數)。實際上,對象成員的類型可以是本派生類的基類,也可以是另外一個已定義的類。在一個類中以另一個類的對象作為數據成員的,稱為類的組合(composition)。
例如,聲明Professor(教授)類是Teacher(教師)類的派生類,另有一個類BirthDate(生日),包含year,month,day等數據成員。可以將教授生日的信息加入到Professor類的聲明中。如:
class Teacher //教師類{public: // Some Codeprivate: int num; string name; char sex;};class BirthDate //生日類{public: // Some Codeprivate: int year; int month; int day;};class Professor:public Teacher //教授類{public: // Some Codeprivate: BirthDate birthday; //BirthDate類的對象作為數據成員};
類的組合和繼承一樣,是軟件重用的重要方式。組合和繼承都是有效地利用已有類的資源。但二者的概念和用法不同。通過繼承建立了派生類與基類的關系,它是一種 “是”的關系,如“白貓是貓”,“黑人是人”,派生類是基類的具體化實現,是基類中的一 種。通過組合建立了成員類與組合類(或稱復合類)的關系,在本例中BirthDate是成員類,Professor是組合類(在一個類中又包含另一個類的對象成員)。它們之間不是‘‘是”的 關系,而是“有”的關系。不能說教授(Professor)是一個生日(BirthDate),只能說教授(Professor)有一個生日(BirthDate)的屬性。
Professor類通過繼承,從Teacher類得到了num,name,age,sex等數據成員,通過組合,從BirthDate類得到了year,month,day等數據成員。繼承是縱向的,組合是橫向的。
如果定義了Professor對象prof1,顯然prof1包含了生日的信息。通過這種方法有效地組織和利用現有的類,大大減少了工作量。如果有
void fun1(Teacher &); void fun2(BirthDate &);
在main函數中調用這兩個函數:
fun1(prof1); //正確,形參為Teacher類對象的引用,實參為Teacher類的子類對象,與之賦值兼容 fun2(prof1.birthday); //正確,實參與形參類型相同,都是BirthDate類對象 fun2(prof1); //錯誤,形參要求是BirthDate類對象,而prof1是Professor類型,不匹配
如果修改了成員類的部分內容,只要成員類的公用接口(如頭文件名)不變,如無必要,組合類可以不修改。但組合類需要重新編譯。
繼承在軟件開發中的重要意義
繼承是面向對象技術的重要內容,有了繼承,使軟件的重用成為可能。
過去,軟件人員開發新的軟件,能從已有的軟件中直接選用完全符合要求的部件不 多,一般都要進行許多修改才能使用,實際上有相當部分要重新編寫,工作童很大??s短軟件開發過程的關鍵是鼓勵軟件重用。繼承機制解決了這個問亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩av影视在线| 亚洲wwwav| 亚洲国产一区二区三区四区| 国产精品欧美亚洲777777| 欧美日韩国产黄| 欧美中文在线字幕| 久久久久久久一区二区| 5566成人精品视频免费| 亚洲区一区二区| 成人免费xxxxx在线观看| 日韩激情片免费| 久久久久久国产精品美女| 欧美久久久精品| 久久久91精品国产| 亚洲天堂av图片| 日本视频久久久| 欧美做受高潮1| 国产精品一区二区久久久久| 欧美体内谢she精2性欧美| 色妞久久福利网| 欧美最猛黑人xxxx黑人猛叫黄| 亚洲精品wwww| 国产精品丝袜视频| 91免费在线视频网站| 久久久欧美精品| 91亚洲精品久久久| 色婷婷亚洲mv天堂mv在影片| 久久久精品免费视频| 欧美日韩性视频| 亚洲欧美成人一区二区在线电影| 久久久久久网址| 欧美日韩在线观看视频| 国产精品 欧美在线| 欧美一级大片在线免费观看| 色悠久久久久综合先锋影音下载| 国产一区二区三区在线观看网站| 欧洲成人免费视频| 久久久久久国产| 亚洲美女喷白浆| 亚洲女人天堂成人av在线| 高清一区二区三区四区五区| 亚洲电影成人av99爱色| 欧美午夜丰满在线18影院| 国产91|九色| 国产成人综合精品| 57pao国产精品一区| 国产一区二区在线免费| 欧美午夜性色大片在线观看| 久久韩剧网电视剧| 日韩免费在线观看视频| 亚洲精品视频网上网址在线观看| 欧美福利视频网站| 奇米成人av国产一区二区三区| 久久久久久国产三级电影| 日韩在线视频观看| 日韩成人av网址| 国产精品免费久久久久久| 国产欧美日韩综合精品| 色噜噜狠狠狠综合曰曰曰88av| 4438全国成人免费| 91九色国产在线| 日韩高清有码在线| 久久久噜噜噜久久| 亚洲人成人99网站| 欧美激情精品久久久久久久变态| 中文字幕在线观看日韩| 亚洲a成v人在线观看| 91精品国产91久久久久| 久久99视频精品| 精品久久在线播放| 57pao国产精品一区| 亚洲精品久久久久久久久久久| 国产91在线高潮白浆在线观看| 久久精品99国产精品酒店日本| 国产精品亚洲综合天堂夜夜| 日本亚洲欧洲色| 日韩视频免费观看| 亚洲一区制服诱惑| 国产日韩欧美在线| 日本精品视频在线观看| 久久久久久这里只有精品| 中文字幕亚洲欧美在线| 欧美日韩中文字幕日韩欧美| 欧美一区二区三区图| 亚洲新声在线观看| 欧美综合国产精品久久丁香| 久久精品中文字幕免费mv| 91青草视频久久| 欧美性xxxx| 欧美影院在线播放| 久久99青青精品免费观看| 亚洲精品一区二三区不卡| 97超碰蝌蚪网人人做人人爽| 欧美香蕉大胸在线视频观看| 日韩美女av在线免费观看| 国产精品成av人在线视午夜片| 国产精品pans私拍| 成人免费在线视频网址| 国产精品偷伦视频免费观看国产| 尤物yw午夜国产精品视频明星| 欧美成人精品一区二区三区| 日韩欧美在线免费观看| xx视频.9999.com| 欧美激情免费看| 欧美日韩成人在线观看| 88国产精品欧美一区二区三区| 国产亚洲a∨片在线观看| 亚洲第一av网站| 国产视频精品va久久久久久| 一本色道久久综合狠狠躁篇的优点| 成人黄色午夜影院| 欧美性猛交xxxx富婆弯腰| 欧美激情成人在线视频| 日韩av在线直播| 日韩人在线观看| 91免费电影网站| 日韩电影大片中文字幕| 91精品国产高清久久久久久91| 欧美综合在线第二页| 4k岛国日韩精品**专区| 北条麻妃一区二区三区中文字幕| 亚洲一区中文字幕在线观看| 日韩精品一区二区三区第95| 一个人看的www欧美| 亚洲在线观看视频网站| 伊人伊成久久人综合网站| 国产成人在线一区二区| 久久99亚洲精品| 精品国产一区二区三区久久久| 国产中文字幕91| 中文字幕亚洲自拍| 91久久精品国产91久久性色| 91久久久久久久| xvideos亚洲人网站| 欧美亚州一区二区三区| 亚洲第一精品自拍| 国产欧美一区二区三区在线看| 亚洲精品成人av| 亚洲国产第一页| 国产精品欧美激情在线播放| 91国内在线视频| 97碰碰碰免费色视频| 亚洲男人天堂2024| 欧美性视频精品| 精品久久久久久久久久久久久| 最近2019年好看中文字幕视频| 亚洲免费视频在线观看| 精品美女久久久久久免费| 精品国产福利视频| 国产精品美女主播在线观看纯欲| 中文字幕国产精品久久| 中文字幕一区二区精品| 九九热精品视频国产| 亚洲视频欧洲视频| 精品国产999| 国产成人福利视频| 亚洲精品久久7777777| 亚洲精品一区久久久久久| 欧美有码在线观看| 久久久久久综合网天天| 亚洲色图狂野欧美| 亚洲国产精久久久久久| 亚洲天堂开心观看| 性色av一区二区三区在线观看|