- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
北京邮电大学电信工程学院计算机技术中心 C++大学基础教程 第9章 继承与派生 北京邮电大学电信工程学院 计算机技术中心 第9章 继承与派生 9.1 继承的概念 9.2 继承方式 9.3 派生类构造函数的定义 9.4 多继承 第9章 继承与派生 软件重用 第9章 继承与派生 类具有封装性、继承性和多态性 第9章 继承与派生 主要介绍: 继承和派生的概念 继承方式; 派生类的构造函数与析构函数; 多继承中的二义性 虚基类。 9.1 继承的概念 类的继承是在现有类的基础之上,创建新类的机制。称现有的类为基类,新建立的类为派生类。 新类继承了基类的属性和行为 新类是基类的特殊情况。 不必从“草稿”开始创建特殊的程序对象 继承是处理“特殊情况”的面向对象编程机制 例: 定义基类shape class shape { private: int m_x,m_y; //位置 char m_color; //颜色 public: void setposition(int x, int y); void setcolor(char color); int getx(); int gety(); char getcolor(); }; 派生新类: circle 圆形 rectangle 矩形 triangle 三角形 注意 每一个“继承方式”,只用于限制对紧随其后之基类的继承。 类的继承方式是派生类对基类成员的继承方式。 类的继承方式指定了类外对象对于派生类从基类继承来的成员的访问权限。 直接基类和间接基类 class base {…… }; class deriver1:public base { …… }; class deriver2:public deriver1 {…… } 派生与继承的实例 公司人员管理系统: 小型公司人员分为: 经理、兼职技术人员、销售经理和兼职推销员. 要求: 存储所有人员的姓名、编号、级别、当月薪水,计算月薪总额并显示全部信息。 人员编号在生成人员信息时同时生成,每输入一个人员信息编号顺序加1。 程序能够对不同人员按不同方法提升级别,月薪的计算方法是: 经理拿固定月薪; 兼职技术人员按工作小时数领取月薪; 兼职推销员的报酬按该推销员当月销售额提成; 销售经理既拿固定月薪也领取销售提成。 派生与继承的实例 分析: ·描述全体职员的共性(基类) ·描述每一类特殊人员(派生类) class employee { protected: char *name; //姓名 int individualEmpNo; //个人编号 int grade; //级别 float accumPay; //月薪总额 static int employeeNo; //本公司职员编号目前最大值 public: employee(); //构造函数 ~employee(); //析构函数 void pay(); //计算月薪函数 void promote(int); //升级函数 void displayStatus(); //显示人员信息 }; class technician: public employee //兼职技术人员类 { private: float hourlyRate; //每小时酬金 int workHours; //当月工作时数 public: technician(); //构造函数 void pay(); //计算月薪函数 void displayStatus(); //显示人员信息 }; 9.2 继承方式 三种继承方式 public、protected、private 不同继承方式的影响主要体现在: 派生类 成员 对基类成员的访问控制。 派生类 对象 对基类成员的访问控制。 定义派生类时要声明继承方式 9.2.1. 派生类的定义 派生类的定义形式: class 派生类名:继承方式 基类1, 继承方式 基类2,…,继承方式 基类n { 派生类成员声明; }; 例9.1 图形类及其派生类的声明 class Shape { public: Shape(int x=0, int y=0, char c = R); int GetX() const; void SetX( int x); int GetY() const; void SetY( int x); char GetColor() const; void SetColor(char c); pro
您可能关注的文档
最近下载
- 2025最新高级生命支持(ACLS)理论考核试题及答案.docx VIP
- T∕CCSAS 001-2018 危险与可操作性分析质量控制与审查导则.pdf
- 07J912-1变配电所图集.pdf VIP
- 基于PLC控制的小车自动化送料系统设计(毕业论文).doc VIP
- 2025北京海淀高一(下)期末数学试卷含答案.pdf VIP
- 中国社会的不婚现象:现实与潜在影响探讨.docx VIP
- 2025最新高级生命支持(ACLS)理论考核试题和答案.docx
- 5.2《稻》《作酢法》+二则(知识清单)-【中职专用】高二语文(高教版2023拓展模块下册).docx VIP
- 2025年非车险考试题 .pdf VIP
- GB50016-2014 建筑设计防火规范(2018年版).docx
文档评论(0)