欢迎来到天天文库
浏览记录
ID:46224047
大小:449.50 KB
页数:44页
时间:2019-11-21
《第5章_类与类之间的关系new》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、主讲:面向对象程序设计及C++1面向对象程序设计及C++第五章类与类之间的关系2本章作业作业本:本章习题:一、二、三(1,2)、四、五(1、3)10:403本章内容安排5.1类的组合5.2类的依赖5.3类的继承与派生5.4程序实例——师生信息管理系统本章小结10:4045.1类的组合在日常生活中,一个物体有可能由多个物体组成。一台汽车由发动机、轮胎、座椅等组成一只手机由电路板、外壳和显示屏等组成体现的主要特征一个对象中包含了其它对象10:405面向对象程序设计为描述这种关系,引入组合机制。cla
2、ssA{……};classB{……};classC{public:……private:intx;chary;Aa;Bb;};a、b:对象成员10:406对象成员的构造与析构对象成员在创建时需要调用构造函数,在退出内存时需要调用析构函数。课本例5.1。总结对象与它内部的对象成员生命周期相同。当对象被创建时,对象成员也会被创建,对象析构时,对象成员也一同被析构。创建对象时,首先调用对象成员的构造函数,再调用对象自身的构造函数。析构时顺序完全相反。10:407对象成员的构造与析构如果对象成员的构造函数
3、需要传入参数,则采用初始化表中来解决。成员对象名(实际参数表)课本例5.2。a1对象在a2对象之前被创建。这说明,对象成员构造函数的调用次序与初始化表中出现的次序无关。它应与对象成员在类中定义的次序一致。10:4085.2类的依赖在日常生活中,一个对象或物体在实现某一功能时,通常要借助于其它对象或物体的协助。修理工使用扳手拧开了盖子顾客使用信用卡付账等。体现的特征被抽象为一个对象中某一功能的实现需要另一个对象。10:409类的依赖在面向对象语境中,将其阐述为依赖关系修理工“依赖”扳手工作顾客“依
4、赖”信用卡付账课本例5.3。10:4010类的依赖依赖关系与组合关系的区别课本例5.3实现二。组合关系中,对象与对象成员具有相同的生命周期,依赖关系则未必。在实际设计软件时,既要考虑语法关系,也要考虑语义是否符合实际10:40115.3类的继承与派生继承是社会生活中一个很普遍的现象。每个人都或多或少地从祖辈和父母那里继承了一些体貌特征。每个人也并不完全是父母的复制。总存在一些特性是他所独有的,在父母身上并没有出现。10:4012类的继承与派生面向对象程序设计把这个过程抽象:一个新定义的类具有某个
5、或某些旧类的功能与成员。但它又不完全与旧类相同,而是额外添加了一些功能或成员。在C++中,旧类称为基类,也称父类,新类称为派生类,也称子类。10:4013继承与派生继承与派生都是指在已有类的基础上,增加新特性而产生新类的过程。基类派生类继承派生10:4014基类与派生类派生类基类派生类派生类基类基类基类派生类派生类10:4015单一继承与多重继承根据基类数目的不同,继承通常分为单一继承和多重继承两大类。单一继承是指派生类只有一个基类,多重继承是指派生类有多个基类。10:4016派生类的定义cla
6、ss<派生类名>:[继承方式]<基类名1>[,[继承方式]<基类名2>,…,[继承方式]<基类名n>]{<派生类新增的数据成员和成员函数定义>};单一继承,只有一个基类名。多重继承中,多个基类之间以逗号分隔。继承方式有三种:public(公有)、private(私有)和protected(保护),缺省为私有继承。10:4017继承机制的优势提高了代码的可重用性。直接重用已有的代码减轻编程的工作量,提高开发效率提高软件的安全性10:4018例classStudent{protected:charI
7、D[10];//学号charname[20];//姓名charsex;//性别intage;//年龄public:print();//打印};学生类10:4019classGraduate:publicStudent{protected:chartutor[20];//导师charresearch[50];//课题};classGraduate{protected:charID[10];//学号charname[20];//姓名charsex;//性别intage;//年龄chartutor[2
8、0];//导师charresearch[50];//课题public:print();//打印};研究生类定义方式一研究生类定义方式二10:4020继承方式主要区别:基类成员的访问属性在派生类中会发生不同的变化。10:4021公有继承不可见基类公有成员保护成员私有成员派生类公有成员保护成员私有成员10:4022保护继承不可见基类公有成员保护成员私有成员派生类公有成员保护成员私有成员10:4023私有继承不可见基类公有成员保护成员私有成员派生类公有成员保护成员私有成员10:4024继承方式的总结基
此文档下载收益归作者所有