- 1、本文档共35页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
主讲教师:杨琦 第8章 继承与派生 计算机教学实验中心 西安交通大学 教学目标 介绍面向对象程序设计的 基本概念: 类的继承与派生 不同继承方式下的基类成员的访问控制 添加派生类的构造和析构函数 学习要求 1.掌握继承和派生的概念,派生类的定义方法。 2.熟悉继承的不同方式对基类成员的访问控制 3.掌握多重继承的概念、定义方法、多重继承派生类构造函数的执行顺序。 先执行所有基类的构造函数(顺序按照定义派生类时指定的各基关顺序) 再执行对象成员所在类的构造函数(顺序按照它们在类中的声明顺序) 最后执行派生类构造函数体中的内容 授课内容 8.1 继承与派生 8.2 派生类的继承方式 8.3 派生类的构造函数和析构函数 自学内容 8.4 显式访问基类成员 8.5 静态成员 8.6 类模板 调试技术 程序设计举例 8.1 继承和派生 派生类的定义格式为: class 派生类名:继承方式 基类名1,继承方式 基类名2,…,继承方式 基类名n { 派生类增加的成员声明; }; 图8.1 水果的分类 派生类的语法结构 class 派生类名:访问权限 基类名 { private: 新增私有数据成员和成员函数 protected: 新增保护数据成员和成员函效 public: 新增公有数据成员和成员函效 } 派生类中的变化 派生类对基类的扩充 派生类对基类成员的改造 系统的默认值就是私有继承(private)。 8.2 派生类的继承方式 私有继承private 公有继承public 保护继承protected 公有继承(public) 公有继承方式创建的派生类对基类各种成员访问权限如下 : 基类公有成员相当于派生类的公有成员,即派生类可以象访问自身公有成员一样访问从基类继承的公有成员。 基类保护成员相当于派生类的保护成员,即派生类可以象访问自身的保护成员一样,访问基类的保护成员。 对于基类的私有成员,派生类内部成员无法直接访问。派生类使用者也无法通过派生类对象直接访问。 实例:公有继承(public) class Person { private: char m_strName[20]; int m_nAge; int m_nSex; public: void GetName(char *Name); int GetAge(); char GetSex(); ... ... }; 例8-1 从Person类公有派生一个职员类 class Employee: public Person { char m_strDept[20]; float m_fSalary; public: Employee() { EmployeeRegister(XXX,0,m,XXX,0); } EmployeeRegister(char *name, int age, char sex, char *dept, float salary); void ShowMe(); }; 私有继承 (private) 派生类对基类各种成员访问权限如下 : 基类公有成员和保护成员都相当于派生类的私有成员,派生类只能通过自身的函数成员访问他们 对于基类的私有成员,无论派生类内部成员或派生类使用者都无法直接访问。 实例:私有继承(private) class Person { private: char m_strName[20]; int m_nAge; int m_nSex; public: void GetName(char *Name); int GetAge(); char GetSex(); ... ... }; 例8-2 人员类(Person)的私有派生类 class Employee: private Person //雇员类定义 { char m_strDept[20]; //工作部门 float m_fSalary; //月薪 public: Employee() { EmployeeRegister(XXX,0,m,XXX,0); } EmployeeRegister(char *name, int age, char sex, char *dept, float salary); void ShowMe(); //显示雇员信息 char* GetEmployeeName() { return GetName(); }//取姓名 char GetEmployeeSex() { re
您可能关注的文档
- 第1章_C语言的概述.ppt
- 第1章_C语言基础知识.ppt
- 第1章Access课件(2011年上传).ppt
- 第1章C语言概述(2学时).ppt
- 第1章计算机辅助教育测量与评价概述.ppt
- 第1章计算机基础知识_1.ppt
- 第1章计算机考试.ppt
- 第1章计算机网络基础知识1.ppt
- 第1章计算简介.ppt
- 第2讲 Windows操作系统基础ok.ppt
- 2025年智能家居互联互通标准下的智能家居设备互联互通标准制定报告.docx
- 消费金融行业用户画像与精准营销报告:2025年市场创新趋势.docx
- 医院信息化建设2025年电子病历系统移动护理优化方案报告.docx
- 2025年智能化环境监测技术发展趋势与数据质量分析报告.docx
- 新能源物流车推广应用与物流行业转型升级成本分析报告.docx
- 校园体育馆健身休闲区域设计评估.docx
- 博士教育的科技引领-数码科技如何塑造博士教育.pptx
- 2025年电商平台内容营销与种草经济协同效应研究,行业深度报告.docx
- 旅游地产项目可持续发展与旅游产业集聚效应研究报告.docx
- 公路货运行业数字化转型与效率提升的物流配送时效性提升策略.docx
文档评论(0)