欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > PPT文档下载
     

    继承和派生.ppt

    • 资源ID:2631890       资源大小:140.01KB        全文页数:28页
    • 资源格式: PPT        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    继承和派生.ppt

    继承和派生,继承和派生的基本概念 单一继承定义 派生类重定义基类函数 基类中成员被继承后存取权限等级的变化 继承关系中构造函数、析构函数之间的关系 多重继承,继承的例子,家具和柜子 建筑和房子 道路和高速公路 动物和猫 电视和彩色电视 电脑和笔记本电脑,基类与派生类,在原有类的基础上派生出新的类,新类继承原有类的属性和方法,称原有的类为基类,新类称为派生类。 假定有一个类A,要创建一个新类B,它是类A的一个特殊版本。类A就称为基类,类B则称为派生类。类A是父,类B就是子,继承和派生的基本概念,继承允许以现有的类为基础来构建新类 新类(派生类)继承现有类(基类)的属性和行为 派生类可以修改继承的属性和行为 派生类可以增加新的属性和行为 派生类对象也是基类对象 派生类对象和基类对象可以被统一管理,继承和派生的基本概念,继承的意义,便于管理系统中的对象 系统扩充比较容易- 利用程序代码的再用性 加快程序发展的速度 减少程序的错误,何时使用继承,继承使用时机 A类是B类的一种 A类与B类在属性和功能上相差不多, 只是A类多了一些独有的特性 此时可以考虑使A类继承于B类,派生类的声明,单继承派生类的声明语法为: class 派生类名 : 继承方式 基类名 派生类新增成员的声明; 继承要考虑的部分 派生类不同于基类的部分 派生类扩充基类的部分,继承和派生,class Point private: int x,y; public:Point(int a ,int b)x=a;y=b; void show()coutxyendl; ; class Rectangle:private Point private:int H,W; public:Rectangle(int a,int b,int h,int w):Point(a,b) H=h;W=w; void show()point:show();coutHWendl; ;,继承和派生,私有成员(private):可以被类自身的成员和友元访问,但不能被包括派生类在内的其他任何类和任何普通函数访问 公有成员(public):可以被任何普通函数和任何类的成员函数访问 保护成员(protected):可以被类自身的成员和友元访问外,还可以被派生类的成员函数访问,但不能被任何非友元的普通函数访问,公有继承(public)和派生,基类中公有成员和受保护成员被继承后可见性不变 public方式继承成员存取权限等级的变化,私有继承(private)和派生,基类中公有成员和受保护成员被继承后都是私有的 private方式继承成员存取权限等级的变化,受保护继承(protected)和派生,基类中公有成员和受保护成员被继承后都是受保护的,基类中的私有成员,基类中的私有成员 能被派生类继承 不能被派生类的成员函数直接访问 可通过定义于基类的公有和受保护成员函数访问,派生类重定义基类函数,在派生类中重定义基类的函数 派生类自动继承基类的所有成员 重定义函数的函数原型和基类中被重定义函数的函数原型必须完全相同 不同则是函数重载 重定义之后两个函数共存,但调用方法不同 调用基类函数:基类名 + : + 函数名 调用派生类函数:直接调用 如果派生类中出现相同的成员需要编程时注意其存取的范围. 不能运用基类的成员函数来设定派生类的数据成员, 而只能在派生类中重新定义存取数据成员的成员函数.,继承和派生,练习、设计一个圆类,从圆派生圆柱(或圆锥),并设计成员函数输出圆柱(或圆锥)的底面面积和体积。,继承关系中构造函数之间的关系,派生类不继承基类的构造函数 派生类和基类的构造函数之间是一种自动调用的关系 创建派生类对象时,派生类构造函数要调用基类的构造函数对基类的数据成员进行初始化 先执行基类构造函数,然后执行派生类构造函数体 基类构造函数需要参数时需要显式调用,格式: 派生类名:派生类名(参数表):基类(参数表) 基类构造函数不需要参数时(有默认构造函数),隐式调用,继承关系中析构函数之间的关系,派生类不继承基类的析构函数 派生类和基类的析构函数之间是一种自动调用的关系 派生类的析构函数也需要调用基类的析构函数做一些和基类相关的清理工作 销毁派生类对象时 先执行派生类析构函数,然后执行基类析构函数体,继承和派生,class People public: People(char *str ) name = new charstrlen(str)+1; strcpy(name, str); cout“People construct: “nameendl; People() cout“People destroy: “nameendl; delete name; protected: char *name; ;,继承和派生,class Teacher : public People public: Teacher(char *str, char *sch:People(str) /调用基类的构造函数 school = new charstrlen(sch)+1; strcpy(school,sch); cout“Teacher construct: “name“ in “ schoolendl; Teacher:Teacher() cout“Teacher destroy: “name“ in “schoolendl; delete school; protected: char *school; ;,继承和派生,int main () People tmp(“Zhang San“); People p(“Li Si“); Teacher t(“Wang Wu“, “Wuhan University“); return 0; ,多重继承,类的层次 一个类可以是某个继承关系中的基类,也可以是另一个继承关系中的派生类 类A派生出类B,类B又派生出类C,则类B是类C的直接基类,类A是类C的间接基类 定义派生类时,直接基类要明确列出,间接基类不用列出,多重继承,class Point private: int x,y; public:Point(int a ,int b)x=a;y=b; void show()coutxyendl; ; class Rectangle:public Point private:int H,W; public:Rectangle(int a,int b,int h,int w):Point(a,b) H=h;W=w; void show()point:show();coutHWendl; ;,多重继承,class Test:public Rectangle public: Test(int a,int b,int h,int w):Rectangle(a,b,h,w) void show()Rectangle:show(); ;,多重继承,#include class A public: void func()cout“A.func”endl; ; class B public: void func()cout“B.func”endl; void gunc()cout“b,gunc”endl; ;,多重继承,class C:public A,public B public: void gunc() cout“c.gunc”endl; void hunc() func(); ;,多重继承,多重继承中,对基类成员的访问必须是无二义性的。 对以上的程序段可进行如下修改: void hunc() A:func(); B:func();,多重继承,下面是某公司经理、兼职人员、销售经理和销售员的工资计算方法,设计合适的基类和派生类,实现工资管理任务。 人员类别 固定工资(元) 计时工资(元/小时) 当月销售总额提成 公司经理 8000 无 无 兼职人员 无 100 无 销售经理 5000 无 5 销售员 无 无 4,

    注意事项

    本文(继承和派生.ppt)为本站会员(本田雅阁)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开