电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

c语言与程序设计大学教程(下)ppt

280页
  • 卖家[上传人]:tia****nde
  • 文档编号:70631218
  • 上传时间:2019-01-17
  • 文档格式:PPT
  • 文档大小:874.81KB
  • / 280 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、1,C语言与程序设计大学教程(下),2,第8章 继承与派生 第9章 关于类和对象的进一步讨论 第10章 运算符重载 第11章 继承与派生 第12章 多态性与虚函数,3,第8章 继承与派生,教学主要内容 继承与派生的概念 派生类的构成 派生类的构造函数与析构函数 重点与难点 派生类的构成 派生类的构造函数,4,第8章 继承与派生,教学目标 (1)熟练掌握继承与派生的概念 (2)掌握派生类的构成 (3)掌握派生类的构造函数,5,第8章 继承与派生,8.1 类的继承与派生 8.2 继承方式与成员访问规则 8.3 派生类的构造函数和析构函数,6,面向对象技术强调软件的可重用性(software reusability) 。C+语言提供了类的继承机制,解决了软件重用问题。 继承性是面向对象程序设计的一种重要功能,是实现代码复用的一种形式。继承可以使程序设计人员在一个已存在类的基础上很快建立一个新的类,而不必从零开始设计新类。新设计类除具有原来类的属性和方法,还可以为新类添加新的属性和方法。,第8章 继承与派生,7,在C+中,在已有类的基础上新增自己的特性而产生新类的过程称为派生。所谓“继承”就是

      2、在一个已存在的类的基础上建立一个新的类,即保持已有类的特性。当一个类被其他的类继承时,被继承的类称为基类,又称为父类、超类。继承其他类属性和方法的类称为派生类,又称为子类、继承类。,8.1 类的继承与派生,8,8.1.1 基类与派生类,9,8.1.1 基类与派生类,一个派生类不仅可以从一个基类派生,也可以从多个基类派生。一个派生类有两个或多个基类的称为多重继承。图3给出了多继承的实例 。,10,8.1.2 派生类的定义,【格式】 class 派生类名:继承方式 基类名 派生类新增的数据成员和成员函数; ;,11,派生类的定义实例,例如: class TPerson /定义基类TPerson char name10; int age; char sex; public: void print(); ; class TStudent : public TPerson /派生类TStudent的新成员 int class_no; int score; public: void show_count_sum_avg(); ;,12,派生类的定义,【说明】 从已有类派生出新类时,可以在派生类内完

      3、成以下几种功能: (1)增加新的数据成员; (2)增加新的成员函数; (3)重新定义基类中已有的成员函数; (4)改变现有成员的属性。,13,8.1.3 派生类的成员构成,派生类中的成员分为两大部分:一部分是从基类继承来的成员,另一部分是在声明派生类时增加的新成员。每一部分均分别包括数据成员和成员函数。图5 给出了派生类TStudent的成员构成。,14,派生类的成员构成,15,8.2 继承方式与成员访问规则,既然派生类中包含基类成员和派生类自己增加的成员,就产生了这两部分成员的关系和访问属性的问题。派生类对基类成员的访问形式主要有以下两种: (1)内部访问:由派生类中新增成员对基类继承来的成员的访问。 (2)对象访问:在派生类外部,通过派生类的对象对从基类继承来的成员的访问。 派生类对基类的继承方式有3种:公有继承方式(public)、私有继承方式(private)和保护继承方式(protected)。 不同继承方式的影响主要体现在: (1)派生类成员对基类成员的访问控制。 (2)派生类对象对基类成员的访问控制。,16,8.2.1 公用继承(public),当类的继承方式为publi

      4、c(公有)继承时,基类的public成员和protected成员被继承到派生类中仍作为派生类的public成员和protected成员,派生类的其他成员可以直接访问它们。但是,类的外部使用者只能通过派生类的对象访问继承来的public成员。 基类的private成员在派生类中仍然是private成员,所以无论是派生类成员还是通过派生类的对象,都无法直接访问从基类继承来的private成员,但是可以通过基类提供的public成员函数间接访问它们。,17,公用继承(public),18,公用继承(public)应用实例,【实例8-2-1】公有继承应用实例。 class TPerson char name10; int age; char sex; public: void Init_Person(char *str,int age1,char s); void print(); ; void TPerson:Init_Person(char *str,int age1,char s) strcpy(name,str); age=age1; sex=s;,19,公用继承(public)应用实

      5、例,void TPerson:print() cout“n“name“ “age“ “sex“ “; class TStudent : public TPerson / Public公有继承方式 int class_no; int score; public: void Init_Student(char *str2,int age2,char s2,int c_no,int score1); void show_st(); ; void TStudent:Init_Student(char *str2,int age2,char s2,int c_no,int score1) /在派生类中直接访问基类person的Init_Person()成员函数 Init_Person(str2,age2,s2); class_no=c_no; score=score1; ,20,公用继承(public)应用实例,void TStudent:show_st() print(); cout #include void main() TStudent st; /通过派生类对象st直接访问基类Perso

      6、n的公有成员函数/Init_Person st.Init_Person(“Li Ping“,18,F); st.print(); st.Init_Student(“Li Ping“,18,F,1,98); st.show_st(); ,21,8.2.2 私有继承(private ),当类的继承方式为private(私有)继承时,基类的public成员和protected成员被继承后作为派生类的private成员,派生类的其他成员可以直接访问它们,但是在类外部通过派生类的对象无法访问。 基类的private成员在私有派生类中是不可直接访问的,所以无论是派生类成员还是通过派生类的对象,都无法直接访问从基类继承来的private成员,但是可以通过基类提供的public成员函数间接访问。,22,私有继承(private ),23,私有继承(private )应用实例,【实例8-2-2】私有继承应用实例。 class TPerson char name10; int age; char sex; public: void Init_Person(char *str,int age1,char s

      7、); void print(); ; void TPerson:Init_Person(char *str,int age1,char s) strcpy(name,str); age=age1; sex=s; ,24,私有继承(private )应用实例,void TPerson:print() cout“n“name“ “age“ “sex“ “; /Private私有继承方式 class TStudent : private TPerson int class_no; int score; public: void Init_Student(char *str2,int age2,char s2,int c_no,int score1); void show_st(); ;,25,私有继承(private )应用实例,void TStudent:Init_Student(char *str2,int age2,char s2,int c_no,int score1) Init_Person(str2,age2,s2); class_no=c_no; score=score1; v

      8、oid TStudent:show_st() print(); coutclass_no“ “scoreendl; ,26,私有继承(private )应用实例,#include #include void main() TPerson p; TStudent st; /通过派生类对象只能访问本类成员函数 p.Init_Person(“Li Ping“,18,F); p.print(); st.Init_Student(“Li Ping“,18,F,1,98); st.show_st(); ,27,8.2.3 保护继承(protected),当类的继承方式为protected(保护)继承时,基类的public成员和protected成员被继承到派生类中都作为派生类的protected成员,派生类的其他成员可以直接访问它们,但是类的外部使用者不能通过派生类的对象来访问它们。 基类的private成员在私有派生类中是不可直接访问的,所以无论是派生类成员还是通过派生类的对象,都无法直接访问基类的private成员。,28,保护继承(protected),29,保护继承(protected)应

      9、用实例,【实例8-2-3】 在派生类中引用保护成员。 #include #include class Student /声明基类 public: /基类公用成员 void display( ); protected : /基类保护成员 int num;string name;char sex; ; void Student:display( ) /定义基类成员函数 cout“num:“numendl; cout“name:“nameendl; cout“sex:“sexendl; ,30,保护继承(protected)应用实例,/用protected方式声明派生类Student1 class Student1: protected Student public: void display1( ); /派生类公用成员函数 private: int age; /派生类私有数据成员 string addr; /派生类私有数据成员 ; void Student1:display1( ) /定义派生类公用成员函数 cout“num:“numendl; cout“name:“nameendl; cout“sex:“sexendl; cout“age:“ageendl; cout“address:“addrendl; ,31,保护继承(protected)应用实例,void main( ) Student1 stud1; /stud1是派生类Student1类的对象 /合法,display1是派生类中的公用成员函数 stud1.display1( ); /错误,外界不能访问保护成员 / stud1.num=100

      《c语言与程序设计大学教程(下)ppt》由会员tia****nde分享,可在线阅读,更多相关《c语言与程序设计大学教程(下)ppt》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.