《C程序设计教程.ppt》由会员分享,可在线阅读,更多相关《C程序设计教程.ppt(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第10章 继承l继承结构l访问父类成员l派生类的构造l继承方式l继承与组合l多继承概念l多继承技术10.1 继承结构l类层次结构l派生类对象结构class 子类类名:继承类型 基类类名/子类类定义 继承类型:private public protected10.2 访问父类成员l继承父类成员 父类成员在内存结构中存在于子类对象中,所以父类成员在一定条件下可以被子类代码或外部代码访问l类内访问控制l私有l保护l公有类内访问控制 访问属性继承publicprotectedprivatepublicpublicprotectedprivateprotectedprotectedprotectedpr
2、ivateprivateprivateprivateprivate10.3 派生类的构造l缺省构造l自定义构造l拷贝构造与赋值l对象构造顺序10.4 继承方式l继承访问控制lpubliclprotectedlprivatel调整访问控制lprivate protected10.5 继承与组合l对象结构l性质差异l继承设计l组合设计 gs对象namesemesterHoursaverageadvisorqualifierGrade基类部分派生类部分Advusor对象成员基类数据成员派生类新增其他数据成员 gs_a对象 name semesterHours averageadvisorqualif
3、ierGradeB类对象内存结构B对象成员A类数据成员A类对象成员性质差异l继承(A继承B)l派生类A定义中看不到基类B的定义l派生类A对象中含基类B的成员l基类B中的private成员不能在派生类A中访问l派生类A对象是基类B对象IS关系l组合(A组合B)l类A定义中看到组合类B类型的对象成员定义l类A对象中含组合类B对象的成员l组合类B中只有public成员才能在类A中访问l类A对象含有组合类B对象HAS关系点和圆继承和组合l点的设计:点的坐标,角度,距离,点的移动,点的加操作,点的赋值加操作l圆的设计:圆点,半径,面积,周长,圆的移动,半径的修改l新增成员:半径,面积计算,周长计算,移动
4、操作,半径修改操作继承设计l圆是一个半径不为0的点。l组合设计l圆里有一个类型为Point的圆点10.6 多继承概念l多继承结构l基类成员名冲突l基类分解多继承结构基类成员名冲突class 派生类子类:public 基类1,public 基类2 /派生类类定义无命名冲突时:子类对象.成员 或 成员有命名冲突时:子类对象.基类1:成员 或 基类1:成员基类分解10.7 多继承技术虚拟继承class 派生类1:virtual public 基类 /派生类1类定义class 派生类2:virtual public 基类 /派生类2类定义class 派生类子类:public 派生类1,public 派生类2 /派生类子类类定义