第章類與類之間的關(guān)系new_第1頁
第章類與類之間的關(guān)系new_第2頁
第章類與類之間的關(guān)系new_第3頁
第章類與類之間的關(guān)系new_第4頁
第章類與類之間的關(guān)系new_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

主講:面向?qū)ο蟪绦蛟O(shè)計及C++1面向?qū)ο蟪绦蛟O(shè)計及C++第五章類與類之間的關(guān)系2本章作業(yè)作業(yè)本:本章習(xí)題:一、二、三(1,2)、四、五(1、3)10:403本章內(nèi)容安排5.1類的組合5.2類的依賴5.3類的繼承與派生5.4程序?qū)嵗獛熒畔⒐芾硐到y(tǒng)本章小結(jié)10:4045.1類的組合在日常生活中,一個物體有可能由多個物體組成。一臺汽車由發(fā)動機(jī)、輪胎、座椅等組成一只手機(jī)由電路板、外殼和顯示屏等組成體現(xiàn)的主要特征一個對象中包含了其它對象10:405面向?qū)ο蟪绦蛟O(shè)計為描述這種關(guān)系,引入組合機(jī)制。classA{ ……};classB{ ……};classC{public: ……private: intx; chary;

Aa; Bb;};a、b:對象成員10:406對象成員的構(gòu)造與析構(gòu)對象成員在創(chuàng)建時需要調(diào)用構(gòu)造函數(shù),在退出內(nèi)存時需要調(diào)用析構(gòu)函數(shù)。課本例5.1。總結(jié)對象與它內(nèi)部的對象成員生命周期相同。當(dāng)對象被創(chuàng)建時,對象成員也會被創(chuàng)建,對象析構(gòu)時,對象成員也一同被析構(gòu)。創(chuàng)建對象時,首先調(diào)用對象成員的構(gòu)造函數(shù),再調(diào)用對象自身的構(gòu)造函數(shù)。析構(gòu)時順序完全相反。10:407對象成員的構(gòu)造與析構(gòu)如果對象成員的構(gòu)造函數(shù)需要傳入?yún)?shù),則采用初始化表中來解決。成員對象名(實際參數(shù)表)課本例5.2。a1對象在a2對象之前被創(chuàng)建。這說明,對象成員構(gòu)造函數(shù)的調(diào)用次序與初始化表中出現(xiàn)的次序無關(guān)。它應(yīng)與對象成員在類中定義的次序一致。10:4085.2類的依賴在日常生活中,一個對象或物體在實現(xiàn)某一功能時,通常要借助于其它對象或物體的協(xié)助。修理工使用扳手?jǐn)Q開了蓋子顧客使用信用卡付賬等。體現(xiàn)的特征被抽象為一個對象中某一功能的實現(xiàn)需要另一個對象。10:409類的依賴在面向?qū)ο笳Z境中,將其闡述為依賴關(guān)系修理工“依賴”扳手工作顧客“依賴”信用卡付賬課本例5.3。10:4010類的依賴依賴關(guān)系與組合關(guān)系的區(qū)別課本例5.3實現(xiàn)二。組合關(guān)系中,對象與對象成員具有相同的生命周期,依賴關(guān)系則未必。在實際設(shè)計軟件時,既要考慮語法關(guān)系,也要考慮語義是否符合實際10:40115.3類的繼承與派生繼承是社會生活中一個很普遍的現(xiàn)象。每個人都或多或少地從祖輩和父母那里繼承了一些體貌特征。每個人也并不完全是父母的復(fù)制??偞嬖谝恍┨匦允撬氂械模诟改干砩喜]有出現(xiàn)。10:4012類的繼承與派生面向?qū)ο蟪绦蛟O(shè)計把這個過程抽象:一個新定義的類具有某個或某些舊類的功能與成員。但它又不完全與舊類相同,而是額外添加了一些功能或成員。在C++中,舊類稱為基類,也稱父類,新類稱為派生類,也稱子類。10:4013繼承與派生繼承與派生都是指在已有類的基礎(chǔ)上,增加新特性而產(chǎn)生新類的過程。基類派生類繼承派生10:4014基類與派生類派生類基類派生類派生類基類基類基類派生類派生類10:4015單一晝繼承泊與多綿重繼玩承根據(jù)帥基類布數(shù)目狀的不凱同,轎繼承源通常談分為距單一準(zhǔn)繼承贊和多撫重繼黃承兩脫大類脖。單一對繼承暴是指勝派生叢類只罷有一旺個基堂類,多重末繼承臟是指冒派生充類有喬多個啞基類隱。10砍:4隱016派生之類的悔定義cl隸as收s走<派生餡類名>:[繼承托方式]余<基類檔名1>[,[繼承扎方式]穩(wěn)<基類夏名2>,…,[繼承英方式]倒<基類鄰名n>興]{<派生搞類新路增的傲數(shù)據(jù)辜成員飯和成翼員函煮數(shù)定蝕義>};單一盯繼承哪,只劫有一輛個基廣類名莊。多貴重繼拆承中潑,多撓個基洲類之供間以項逗號閣分隔賺。繼承撫方式愿有三擇種:pu蠢bl齡ic(公襪有)炕、pr削iv除at炸e(私盲有)嫌和pr并ot壺ec遷te欣d(保案護(hù))桂,缺例省為華私有役繼承釣。10破:4觸017繼承紫機(jī)制配的優(yōu)刮勢提高凡了代嶼碼的可重冬用性。直接坑重用尸已有情的代閘碼減輕胸編程兵的工安作量恥,提礦高開絨發(fā)效扛率提高棗軟件冊的安脊全性10婆:4攜018例cl街as留sSt哨ud孕en粒t{pr濾ot間ec矮te蟻d:ch智ar虹I差D[棒10秒];//學(xué)號ch娛ar綿n處am詢e[校20泡];//姓名ch廈ar貌s寄ex逼;//性別in薄tag跟e;//年齡pu首bl止ic護(hù):pr扛in購t(藝)調(diào);//打印};學(xué)生應(yīng)類10繞:4凳019cl拖as能sGr蠟ad械ua裕te:pu也bl爸icSt艙ud筆en徹t{pr巡壽ot雄ec駝te栽d:ch墨ar充t上ut郵or炊[2廉0]找;//導(dǎo)師ch證ar喉r韻es抖ea儲rc里h[蜻50察];//課題};cl慘as納sGr茫ad尺ua銹te{pr散ot嗚ec糠te垮d:ch霞ar獄I神D[齡10克];//學(xué)號ch堤ar柱n截am估e[柏20誦];//姓名ch地ar圣s耀ex元;//性別in奴tag銜e;//年齡ch澇ar環(huán)t答ut偏or攀[2翅0]菠;//導(dǎo)師ch后ar用r影es捐ea接rc腹h[僚50脖];//課題pu稱bl裁ic岸:pr榴in叢t(族);//打印};研究孝生類怎定義兇方式跳一研究壇生類糊定義要方式鴨二10丟:4浮020繼承剪方式主要陽區(qū)別禿:基檢類成徒員的訪問訊屬性在派僑生類矛中會細(xì)發(fā)生摧不同創(chuàng)的變圾化。10典:4取021公有草繼承不可鉆見基類公有成員保護(hù)成員私有成員

派生類公有成員保護(hù)成員私有成員

10顧:4在022保護(hù)田繼承不可肢見基類公有成員保護(hù)成員私有成員

派生類公有成員保護(hù)成員私有成員

10劣:4敢023私有厲繼承不可澡見基類公有成員保護(hù)成員私有成員

派生類公有成員保護(hù)成員私有成員

10病:4悼024繼承除方式去的總沾結(jié)基類位的pr茫iv勉at詠e成員后不可防以被少繼承鑼,在醉派生血類中無法緊直接靈訪問?;惙蔚膒u危bl碧ic和pr睡ot視ec鞠te篩d成員可以頁被繼班承,或需者屬襪性保印持不碌變、送或者量同時還變成pr洲ot牢ec沙te尿d或pr矮iv參at啟e,在李派生示類中買可以骨訪問蓬。10侮:4說025單繼仿承舉闊例:5.粗4在派角生類筐中,紹繼承嶺來的位成員美跟新艷定義煙的成悔員一糟樣,臥訪問甲沒有屯任何代限制肺。派生原類無延法直浪接訪烏問基張類的券私有男成員戒,但憤可以沒通過溉基類胃的公齊有成土員來激間接托訪問標(biāo)。基類兇的公償有成清員在液公有冊繼承踩后屬蹈性保排持不甘變,乒因此欠在類藍(lán)外可管以直管接訪耕問到造,比勵如例5.闖4中的ob腦j.求sh五ow(蹲)。新定義成員來自Base的成員公有成員setall()、showall()set()、show()保護(hù)成員b2私有成員dDe斯ri生ve婆d類的狗成員10時:4軋026多重羞繼承勇舉例達(dá):5.倒5pr音ot背ec臣te筐d繼承巴和pr幻玉iv匪at爆e繼承送改變肌了基取類成水員的誰訪問們屬性爛,限畫制了未進(jìn)一綿步派償生,喜因此鼻在實也際編注程中姻極少蟲使用做。De晶ri扔ve購d類的椒成員新定義成員來自BaseA來自BaseB來自BaseC公有成員d3,setD(),showD(),setall(),showall()a3,setA(),showA()保護(hù)成員d2a2b2,b3,setB(),showB()私有成員d1c2,c3,setC(),showC()10鞏:4扯027派生納類對扎象的隆構(gòu)造亮與析誰構(gòu)課本偽例5.小6定義輪一個隨派生雄類對享象時拖,構(gòu)刺造函蝴數(shù)的策調(diào)用貍順序鋼如下傻:基類授的構(gòu)違造函育數(shù)派生饑類對逗象成鏈員的療構(gòu)造素函數(shù)企(按肥定義舒順序浸)派生正類構(gòu)幻玉造函驕數(shù)析構(gòu)獸函數(shù)霸的調(diào)尊用次淚序正瞞好與耀之相茂反。10幻玉:4鋤028基類親構(gòu)造嗓函數(shù)軌的參淹數(shù)傳僑遞初始盟化表課本鈔例5.漁7說明驕:派生護(hù)類只需警負(fù)責(zé)是直接驢基類田構(gòu)造灰函數(shù)用的調(diào)積用。若鴿直接侵基類抱構(gòu)造招函數(shù)插不需嘴要提紐奉供參池數(shù),繼則無柜需在柱初始摘化列扁表中毒列出喉,但耕實質(zhì)肌上也姜是會蟻自動應(yīng)調(diào)用喝基類嶼構(gòu)造草函數(shù)熱的?;愐簶?gòu)造刪函數(shù)抬的調(diào)更用通邊過初我始化潮表來慕完成撲。當(dāng)愈創(chuàng)建粥一個元對象零時,實際鍋調(diào)用滋次序鑼為聲蜻明派睡生類扯時各愚基類蛇出現(xiàn)海的次艘序,而聲不是性各基愧類構(gòu)厘造函腫數(shù)在晌初始灰化表遵中的差次序仁。10會:4稅029多重密繼承召參數(shù)口傳遞類繼胳承關(guān)個系圖Mo間th段er類So求n類Gr麥an那d類Fa尼t(yī)h齊er類課本遷例5.醫(yī)810拌:4繳030同名撓沖突第一膠種:司派生匪類與復(fù)基類偶有同害名成高員課本冠例5.來9同名稍覆蓋逝原則盞:通趟過派妻生類蔽內(nèi)部狠成員蹦函數(shù)洗或派獅生類癢對象蝕訪問紙同名徹成員偉,訪壩問的云都是談派生蹦類中螺新定釣義的質(zhì)同名味成員徐。如果譜要訪茅問基鏡類的腸同名漂成員膠,則畢必須閱在同據(jù)名成站員前圍面加緒上“利基類毀名::理”進(jìn)行悄限定疏。10攜:4固031同名尸沖突第二納種:扯多個擁直接絡(luò)基類衣中有擺同名岡成員課本概例5.良10解決茄方案鐵與上事一種抄類似號,在苗成員鐵前指河名基珍類名王即可學(xué)。10夜:4撥032同名無沖突第三著種:鄉(xiāng)豐共同蕉祖先孤基類塌成員課多重慰拷貝課本妖例5.揪11De慕ri跪ve岔d類中榴共有來兩個縱成員a,一汁個經(jīng)Ba練se變--時-B悼as岡e1喜--辜-D蔑er碎iv顆ed繼承帆,另鉆一個異經(jīng)Ba鄰se新--漲-B間as鎖e2您--役-D概er叢iv納ed繼承核。因朗此在De申ri患ve鬼d中訪鍋問a時會插出現(xiàn)扛同名護(hù)沖突心。為解臣決同目名沖鐘突,銹本例醉采用國了變政量前蒼加“銅類名::協(xié)”的方枕案。蘇但注澆意,均不能穴使用部共同僻的祖箱先基傅類名綢,因落為無童法區(qū)啄別“Ba押se送::嬸a”到底帽是哪有一個候拷貝瓶。10價:4厘033第三慕種同魄名沖月突的云進(jìn)一稱步討爆論cl歐as偉sfu乳rn拘it久ur繩e{pu摟bl黨ic拿:in亂twe漲ig李ht紙;};cl錄as附sso監(jiān)fa:冒pu武bl曬icfu手rn垃it要ur眨e{…志};cl灣as黨sbe共d:掃pu浙bl干icfu尖rn典it柏ur獵e{…獸};cl魔as汗sso夜fa嫂be蠅d:握pu翻bl男icso榜fa,龜pu炭bl做icbe長d{…剛};so疫fa型be搞dob陪1;ob叼1.茅so延fa坦::剃we也ig稼htob辭1.刑be宵d:順:w腫ei帽th監(jiān)t家具沙發(fā)床沙發(fā)床家具10踏:4頓034虛基奔類虛基緒類的唐定義cl露as憤s派生樸類名帳:vi絕rt柜ua抗l繼承事方式基類干名{…矛//趣<函數(shù)討體>};或cl浪as繩s派生孟類名后:繼承奪方式vi脾rt壓ua宇l基類應(yīng)名{…噸//盒<函數(shù)屆體>};vi雖rt健ua機(jī)l確保便虛基枝類的秩構(gòu)造席函數(shù)槽至多體被調(diào)虜用一點次。10童:4拒035虛基蜂類課本疤例5.校12例5.11類關(guān)系圖Base2類Derived類Base類Base1類Base類例5.12類關(guān)系圖Base2類Derived類Base類Base1類10撲:4孕036構(gòu)造項函數(shù)乘與析是構(gòu)函萄數(shù)的蝴調(diào)用當(dāng)創(chuàng)墾建一朋個對稅象時連,其漏完整必的構(gòu)動造函詠數(shù)調(diào)線用次有序是芽:所有烏虛基劣類的涉構(gòu)造扔函數(shù)蛙(按航定義例順序潔)所有坊直接大基類挽的構(gòu)蝴造函理數(shù)(屈按定批義順綠序)所有雷對象鴉成員批的構(gòu)耀造函滑數(shù)(生按定喝義順蹲序)派生鎮(zhèn)類自筋己的銷構(gòu)造墊函數(shù)析構(gòu)叢函數(shù)保的調(diào)姐用次事序與寧之完縣全相矛反。10投:4凡037賦值如兼容染規(guī)則賦值茂兼容縣就是嶼指需潤要使馬用基窯類的伐地方倡可以嗚使用斑其公撒有派宰生類碰來代角替。開換言救之,妙公有抖派生狹類可隱以當(dāng)斧成基稍類來披使用曲。四種寸場景基類泥對象=公有傾派生鎮(zhèn)類對元象指向己基類脖對象向的指尿針=公有警派生邀類對喉象的汗地址指向?;惼睂ο蠊赖闹缸栳?指向盜公有臣派生羨類對男象的況指針基類柔的引頸用=公有酬派生歪類對寇象,黃即派安生類錄對象區(qū)可以胃初始良化基毒類的植引用夢。課本瞇例5.滅1310滾:4烤038程序迅實例——師生浸信息炮管理即系統(tǒng)功能脖擴(kuò)充一個尋學(xué)校討除了所本科咬生之齒外,傻還有郊研究詢生以坊及老業(yè)師等稻人員父,其北管理體都應(yīng)喬納入端到信笨息管丘理系恒統(tǒng)中朱。因韻此,謠需要殿設(shè)計貫相應(yīng)代的類闖來存魂儲這璃些數(shù)飯據(jù)教師框類,刻應(yīng)該負(fù)有姓千名、肅身份茄證號喝、工落號、求年齡道、職障稱等祥屬性掙。研究勾生類桑,應(yīng)惜該有卵姓名少、身戀份證經(jīng)號、抹學(xué)號哀、年牢齡、庫專業(yè)撞、研鎖究課衰題等降屬性拿。10翁:4蹲039程序盤實例——師生勺信息痰管理慈系統(tǒng)為減樂少代斤碼開迷發(fā)量周,可銜以把楚學(xué)生歷類與免教師司類的篇共有遺部分樂提取葛出來衫,再瓦封裝雖成一甩個新腥類,湊稱之破為Pe碌rs伯on類。Pe僚rs側(cè)on用于執(zhí)存儲憤所有特人員羞的共晃有信丹息。隸學(xué)生柄類、求教師生類作避為Pe稅rs熄on的公押有派島生類它,而索研究榴生類鉛則作壤為學(xué)劇生類肝的直酬接派填生類從即可球。另外群,教死師中破可能昂存在除一個語特殊砍的群要體:午在職巾攻讀歉研究而生的呆教師甲。對拐于這渾部分否人,總他們勇應(yīng)當(dāng)止既具掛有研洪究生圖的屬疤性,納又具白有教礦師的存屬性蓄,因惰此我已們要攜定義師一個聯(lián)在職殊研究他生類按來描更述這伍部分毛人。10拋:4拍040程序畢實例——師生妥信息辟管理移系統(tǒng)例5.14類關(guān)系圖GraduatePostgraduateOnJobPersonStudentTeacher10戒:4佛041程序糊實例——師生卷信息矮管理瘋系統(tǒng)原有駝代碼朱的改花進(jìn)將年訓(xùn)齡屬定性改煙為出鐮生日程期,貴避免熄每年政都要黃維護(hù)改數(shù)據(jù)抖。出忠生日反期定考義為部一個Da形te類。進(jìn)一肚步抽竹象出發(fā)一個向界面覽類,回在界屠面類苗中定孩義需催要處釀理的版相關(guān)賢數(shù)據(jù)叛類別訂,并耕定義側(cè)相關(guān)金的輸玻入、庭輸出區(qū)和搜揚索函蛛數(shù)。不再曲使用尚靜態(tài)悲數(shù)據(jù)據(jù)成員牧來計橡數(shù)10脈:4壞042課本圣例5.攜14該程滑序包愚括5個文匹件:ex械am伍pl肯e5悉_1度4_遍pe坐op棟le黑.h:用涂于人果員信兇息相邊關(guān)的遭類定比義ex籃am大pl溉e5邁_1型4_驕pe伶op毅le紀(jì).c葬pp:用斤于人結(jié)員信旗息相良關(guān)的愁類的專實現(xiàn)ex禾am晃pl繪e5夜_1居4_春in招te溫rf榴ac柔e.儀h:用醉于菜盤單界史面相

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論