第章类与类之间的关系new_第1页
第章类与类之间的关系new_第2页
第章类与类之间的关系new_第3页
第章类与类之间的关系new_第4页
第章类与类之间的关系new_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

主讲:面向对象程序设计及C++1面向对象程序设计及C++第五章类与类之间的关系2本章作业作业本:本章习题:一、二、三(1,2)、四、五(1、3)10:403本章内容安排5.1类的组合5.2类的依赖5.3类的继承与派生5.4程序实例——师生信息管理系统本章小结10:4045.1类的组合在日常生活中,一个物体有可能由多个物体组成。一台汽车由发动机、轮胎、座椅等组成一只手机由电路板、外壳和显示屏等组成体现的主要特征一个对象中包含了其它对象10:405面向对象程序设计为描述这种关系,引入组合机制。classA{ ……};classB{ ……};classC{public: ……private: intx; chary;

Aa; Bb;};a、b:对象成员10:406对象成员的构造与析构对象成员在创建时需要调用构造函数,在退出内存时需要调用析构函数。课本例5.1。总结对象与它内部的对象成员生命周期相同。当对象被创建时,对象成员也会被创建,对象析构时,对象成员也一同被析构。创建对象时,首先调用对象成员的构造函数,再调用对象自身的构造函数。析构时顺序完全相反。10:407对象成员的构造与析构如果对象成员的构造函数需要传入参数,则采用初始化表中来解决。成员对象名(实际参数表)课本例5.2。a1对象在a2对象之前被创建。这说明,对象成员构造函数的调用次序与初始化表中出现的次序无关。它应与对象成员在类中定义的次序一致。10:4085.2类的依赖在日常生活中,一个对象或物体在实现某一功能时,通常要借助于其它对象或物体的协助。修理工使用扳手拧开了盖子顾客使用信用卡付账等。体现的特征被抽象为一个对象中某一功能的实现需要另一个对象。10:409类的依赖在面向对象语境中,将其阐述为依赖关系修理工“依赖”扳手工作顾客“依赖”信用卡付账课本例5.3。10:4010类的依赖依赖关系与组合关系的区别课本例5.3实现二。组合关系中,对象与对象成员具有相同的生命周期,依赖关系则未必。在实际设计软件时,既要考虑语法关系,也要考虑语义是否符合实际10:40115.3类的继承与派生继承是社会生活中一个很普遍的现象。每个人都或多或少地从祖辈和父母那里继承了一些体貌特征。每个人也并不完全是父母的复制。总存在一些特性是他所独有的,在父母身上并没有出现。10:4012类的继承与派生面向对象程序设计把这个过程抽象:一个新定义的类具有某个或某些旧类的功能与成员。但它又不完全与旧类相同,而是额外添加了一些功能或成员。在C++中,旧类称为基类,也称父类,新类称为派生类,也称子类。10:4013继承与派生继承与派生都是指在已有类的基础上,增加新特性而产生新类的过程。基类派生类继承派生10:4014基类与派生类派生类基类派生类派生类基类基类基类派生类派生类10:4015单一昼继承泊与多绵重继玩承根据帅基类布数目状的不凯同,轿继承源通常谈分为距单一准继承赞和多抚重继黄承两脱大类脖。单一对继承暴是指胜派生丛类只罢有一旺个基堂类,多重末继承脏是指冒派生充类有乔多个哑基类隐。10砍:4隐016派生之类的悔定义cl隶as收s走<派生馅类名>:[继承托方式]余<基类档名1>[,[继承扎方式]稳<基类夏名2>,…,[继承英方式]倒<基类邻名n>兴]{<派生搞类新路增的傲数据辜成员饭和成翼员函煮数定蚀义>};单一盯继承哪,只劫有一辆个基广类名庄。多贵重继拆承中泼,多挠个基洲类之供间以项逗号阁分隔赚。继承抚方式愿有三择种:pu蠢bl龄ic(公袜有)炕、pr削iv除at炸e(私盲有)嫌和pr并ot壶ec迁te欣d(保案护)桂,缺例省为华私有役继承钓。10破:4触017继承紫机制配的优刮势提高凡了代屿码的可重冬用性。直接坑重用尸已有情的代闸码减轻胸编程兵的工安作量耻,提矿高开绒发效扛率提高枣软件册的安脊全性10婆:4携018例cl街as留sSt哨ud孕en粒t{pr滤ot间ec矮te蚁d:ch智ar虹I差D[棒10秒];//学号ch娱ar绵n处am询e[校20泡];//姓名ch厦ar貌s寄ex逼;//性别in薄tag跟e;//年龄pu首bl止ic护:pr扛in购t(艺)调;//打印};学生应类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]找;//导师ch证ar喉r韵es抖ea储rc里h[蜻50察];//课题};cl惨as纳sGr茫ad尺ua锈te{pr散ot呜ec糠te垮d:ch霞ar狱I神D[龄10克];//学号ch堤ar柱n截am估e[柏20诵];//姓名ch地ar圣s耀ex元;//性别in奴tag衔e;//年龄ch涝ar环t答ut偏or攀[2翅0]菠;//导师ch后ar用r影es捐ea接rc腹h[僚50脖];//课题pu称bl裁ic岸:pr榴in丛t(族);//打印};研究孝生类怎定义凶方式跳一研究坛生类糊定义要方式鸭二10丢:4浮020继承剪方式主要阳区别秃:基检类成徒员的访问讯属性在派侨生类矛中会细发生摧不同创的变圾化。10典:4取021公有草继承不可钻见基类公有成员保护成员私有成员

派生类公有成员保护成员私有成员

10顾:4在022保护田继承不可肢见基类公有成员保护成员私有成员

派生类公有成员保护成员私有成员

10劣:4敢023私有厉继承不可澡见基类公有成员保护成员私有成员

派生类公有成员保护成员私有成员

10病:4悼024继承除方式去的总沾结基类位的pr茫iv勉at咏e成员后不可防以被少继承锣,在醉派生血类中无法紧直接灵访问。基类肺的pu危bl碧ic和pr睡ot视ec鞠te筛d成员可以页被继班承,或需者属袜性保印持不碌变、送或者量同时还变成pr洲ot牢ec沙te尿d或pr矮iv参at启e,在李派生示类中买可以骨访问蓬。10侮:4说025单继仿承举阔例:5.粗4在派角生类筐中,绍继承岭来的位成员美跟新艳定义烟的成悔员一糟样,卧访问甲没有屯任何代限制肺。派生原类无延法直浪接访乌问基张类的券私有男成员戒,但愤可以没通过溉基类胃的公齐有成土员来激间接托访问标。基类凶的公偿有成清员在液公有册继承踩后属蹈性保排持不甘变,乒因此欠在类蓝外可管以直管接访耕问到造,比励如例5.闯4中的ob脑j.求sh五ow(蹲)。新定义成员来自Base的成员公有成员setall()、showall()set()、show()保护成员b2私有成员dDe斯ri生ve婆d类的狗成员10时:4轧026多重羞继承勇举例达:5.倒5pr音ot背ec臣te筐d继承巴和pr幻玉iv匪at爆e继承送改变肌了基取类成水员的谁访问们属性烂,限画制了未进一绵步派偿生,喜因此鼻在实也际编注程中姻极少虫使用做。De晶ri扔ve购d类的椒成员新定义成员来自BaseA来自BaseB来自BaseC公有成员d3,setD(),showD(),setall(),showall()a3,setA(),showA()保护成员d2a2b2,b3,setB(),showB()私有成员d1c2,c3,setC(),showC()10巩:4扯027派生纳类对扎象的隆构造亮与析谁构课本伪例5.小6定义轮一个随派生雄类对享象时拖,构刺造函蝴数的策调用狸顺序钢如下傻:基类授的构违造函育数派生饥类对逗象成链员的疗构造素函数企(按肥定义舒顺序浸)派生正类构幻玉造函骄数析构兽函数霸的调尊用次泪序正瞒好与耀之相茂反。10幻玉:4锄028基类亲构造嗓函数轨的参淹数传侨递初始盟化表课本钞例5.渔7说明骄:派生护类只需警负责是直接驴基类田构造灰函数用的调积用。若鸽直接侵基类抱构造招函数插不需嘴要提纽奉供参池数,继则无柜需在柱初始摘化列扁表中毒列出喉,但耕实质肌上也姜是会蚁自动应调用喝基类屿构造草函数热的。基类液构造删函数抬的调更用通边过初我始化潮表来慕完成扑。当愈创建粥一个元对象零时,实际锅调用滋次序锣为声蜻明派睡生类扯时各愚基类蛇出现海的次艘序,而声不是性各基愧类构厘造函肿数在晌初始灰化表遵中的差次序仁。10会:4税029多重密继承召参数口传递类继胳承关个系图Mo间th段er类So求n类Gr麦an那d类Fa尼th齐er类课本迁例5.医810拌:4缴030同名挠冲突第一胶种:司派生匪类与复基类偶有同害名成高员课本冠例5.来9同名稍覆盖逝原则盏:通趟过派妻生类蔽内部狠成员蹦函数洗或派狮生类痒对象蚀访问纸同名彻成员伟,访坝问的云都是谈派生蹦类中螺新定钓义的质同名味成员徐。如果谱要访茅问基镜类的肠同名漂成员胶,则毕必须阅在同据名成站员前围面加绪上“利基类毁名::理”进行悄限定疏。10携:4固031同名尸冲突第二纳种:扯多个拥直接络基类衣中有摆同名冈成员课本概例5.良10解决茄方案铁与上事一种抄类似号,在苗成员铁前指河名基珍类名王即可学。10夜:4拨032同名无冲突第三著种:乡丰共同蕉祖先孤基类塌成员课多重慰拷贝课本妖例5.揪11De慕ri跪ve岔d类中榴共有来两个纵成员a,一汁个经Ba练se变--时-B悼as冈e1喜--辜-D蔑er碎iv颗ed继承帆,另钻一个异经Ba邻se新--涨-B间as锁e2您--役-D概er丛iv纳ed继承核。因朗此在De申ri患ve鬼d中访锅问a时会插出现扛同名护冲突心。为解臣决同目名冲钟突,锈本例醉采用国了变政量前苍加“铜类名::协”的方枕案。苏但注浇意,均不能穴使用部共同僻的祖箱先基傅类名绸,因落为无童法区啄别“Ba押se送::婶a”到底帽是哪有一个候拷贝瓶。10价:4厘033第三慕种同魄名冲月突的云进一称步讨爆论cl欧as伟sfu乳rn拘it久ur绳e{pu搂bl党ic拿:in乱twe涨ig李ht纸;};cl录as附sso监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监t家具沙发床沙发床家具10踏:4顿034虚基奔类虚基绪类的唐定义cl露as愤s派生朴类名帐:vi绝rt柜ua抗l继承事方式基类干名{…矛//趣<函数讨体>};或cl浪as绳s派生孟类名后:继承夺方式vi脾rt压ua宇l基类应名{…吨//盒<函数届体>};vi虽rt健ua机l确保便虚基枝类的秩构造席函数槽至多体被调虏用一点次。10童:4拒035虚基蜂类课本疤例5.校12例5.11类关系图Base2类Derived类Base类Base1类Base类例5.12类关系图Base2类Derived类Base类Base1类10扑:4孕036构造项函数乘与析是构函萄数的蝴调用当创垦建一朋个对税象时连,其漏完整必的构动造函咏数调线用次有序是芽:所有乌虚基劣类的涉构造扔函数蛙(按航定义例顺序洁)所有坊直接大基类挽的构蝴造函理数(屈按定批义顺绿序)所有雷对象鸦成员批的构耀造函滑数(生按定喝义顺蹲序)派生镇类自筋己的销构造垫函数析构丛函数保的调姐用次事序与宁之完县全相矛反。10投:4凡037赋值如兼容染规则赋值茂兼容县就是屿指需润要使马用基窑类的伐地方倡可以呜使用斑其公撒有派宰生类碰来代角替。开换言救之,妙公有抖派生狭类可隐以当斧成基稍类来披使用曲。四种寸场景基类泥对象=公有倾派生镇类对元象指向己基类脖对象向的指尿针=公有警派生邀类对喉象的汗地址指向玻基类票对象估的指阻针=指向盗公有臣派生羡类对男象的况指针基类柔的引颈用=公有酬派生歪类对寇象,黄即派安生类录对象区可以胃初始良化基毒类的植引用梦。课本眯例5.灭1310滚:4烤038程序迅实例——师生浸信息炮管理即系统功能脖扩充一个寻学校讨除了所本科咬生之齿外,傻还有郊研究询生以坊及老业师等稻人员父,其北管理体都应乔纳入端到信笨息管丘理系恒统中朱。因韵此,谣需要殿设计贯相应代的类闯来存魂储这璃些数饭据教师框类,刻应该负有姓千名、肃身份茄证号喝、工落号、求年龄道、职障称等祥属性挣。研究勾生类桑,应惜该有卵姓名少、身恋份证经号、抹学号哀、年牢龄、库专业撞、研锁究课衰题等降属性拿。10翁:4蹲039程序盘实例——师生勺信息痰管理慈系统为减乐少代斤码开迷发量周,可衔以把楚学生历类与免教师司类的篇共有遗部分乐提取葛出来衫,再瓦封装虽成一甩个新腥类,凑称之破为Pe碌rs伯on类。Pe僚rs侧on用于执存储愤所有特人员羞的共晃有信丹息。隶学生柄类、求教师生类作避为Pe税rs熄on的公押有派岛生类它,而索研究榴生类铅则作壤为学剧生类肝的直酬接派填生类从即可球。另外群,教死师中破可能昂存在除一个语特殊砍的群要体:午在职巾攻读歉研究而生的呆教师甲。对拐于这浑部分否人,总他们勇应当止既具挂有研洪究生图的属疤性,纳又具白有教矿师的存属性蓄,因惰此我已们要携定义师一个联在职殊研究他生类按来描更述这伍部分毛人。10抛:4拍040程序毕实例——师生妥信息辟管理移系统例5.14类关系图GraduatePostgraduateOnJobPersonStudentTeacher10戒:4佛041程序糊实例——师生卷信息矮管理疯系统原有驼代码朱的改花进将年训龄属定性改烟为出镰生日程期,贵避免熄每年政都要黄维护改数据抖。出忠生日反期定考义为部一个Da形te类。进一肚步抽竹象出发一个向界面览类,回在界屠面类苗中定孩义需催要处酿理的版相关贤数据叛类别订,并耕定义侧相关金的输玻入、庭输出区和搜扬索函蛛数。不再曲使用尚静态悲数据据成员牧来计橡数10脉:4坏042课本圣例5.携14该程滑序包愚括5个文匹件:ex械am伍pl肯e5悉_1度4_遍pe坐op栋le黑.h:用涂于人果员信凶息相边关的遭类定比义ex篮am大pl溉e5迈_1型4_骄pe伶op毅le纪.c葬pp:用斤于人结员信旗息相良关的愁类的专实现ex禾am晃pl绘e5夜_1居4_春in招te温rf榴ac柔e.仪h:用醉于菜盘单界史面相

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论