文档详情

北邮课件--c++(a).pdf

发布:2017-05-13约1.98万字共40页下载文档
文本预览下载声明
C++编程(10) Tang Xiaosheng 北京邮电大学电信工程学院 第12章派生类 o 引言 o 派生类 o 抽象类 o 类层次结构的设计 o 类层次结构和抽象类 o 忠告 Beijing University of Posts Telecommunications young@buptnet.edu.cn 12.1 引言 o C++从Simula那里借用了类以及类层次结 构的概念,此外,还有有关系统设计的思想 o 概念不会孤立的存在,它总与一些相关的概 念共存,用类来述概念,不可避免的需要 用类述概念之间的关系 o 派生类的概念及其相关的语言机制使得我们 能够表述一种层次性的关系,即:表述一些 类之间的共性 Beijing University of Posts Telecommunications young@buptnet.edu.cn o 例如:圆和三角形概念之间有关系,因为它 们都是形状,即它们之间共有形状这个概念 o 若在程序中表示一个圆和一个三角形,但是 却没有涉及到形状的概念,就应该认为是丢 掉了某些最基本的东西 o 这个简单的思想就是面向对象程序设计的基 础 Beijing University of Posts Telecommunications young@buptnet.edu.cn 12.2 派生类 o 考虑做一个程序,处理某公司雇佣的人员 struct Employee struct Manager { { string first_name; Employee emp; string family_name; // 经理的雇佣记录 char middle_initial; listEmployee* group; Date hiring_date; // 所管理的人员 short department; short level; }; }; o 程序员很容易知道Employee和Manager之间的关系,但是 编译器却对此一无所知 o 好的述方法应该能够把Manager也是Employee的事实明 确地表述出来 Beijing University of Posts Telecommunications young@buptnet.edu.cn 派生类示例 struct Manager : public Employee { listEmployee* group; short level; }; // 注意,Employee必须在Manager之前定义,不能只声明 o 此Manager是从Employee派生(继承)出来的,也 即:Employee是Manager的一个基类,而 Manager则是Employee的一个子类 o 类Manager中包含了类Employee中的所有成员, 再加上一些自己的成员 Beijing University of Posts Telecommunications young@buptnet.edu.cn 派生类的实现方式 一种常见的实现方式, Employee: Manager: 就是将派生类的对象也 first_name first_name 表示为一个基类的对象, family_name family_name 只是将那些特别属于派 … … 生类的信息附加在最后
显示全部
相似文档