- 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
您可能关注的文档
最近下载
- 国家安全教育大学生读本高教2024版课件-第九章筑牢其他各领域国家安全屏障-.pptx VIP
- TCSGPC-水库库岸边坡变形监测技术规程.pdf VIP
- 雅思基础入学测试题(参考).pdf VIP
- 遗体防腐整容之遗体消毒——化学法消毒遗体.pptx VIP
- 中国古代文学史魏晋南北朝文学教学优质课件.pptx VIP
- 2025年北京银行招聘考试(行政能力测验)历年参考题库含答案详解(5卷).docx VIP
- 昭和ロマンス(昭和罗曼史,岸部真明)吉他弹奏图曲谱.pdf VIP
- 【2025秋】人教版三年级数学上册教学计划(及进度表).docx
- 2025年杭州银行招聘考试(行政能力测验)历年参考题库含答案详解(5卷).docx VIP
- 第十一章 遗体防腐常用器械.ppt VIP
文档评论(0)