工信版(中职)编程语言基础------C++模块9教学课件.ppt
《工信版(中职)编程语言基础------C++模块9教学课件.ppt》由会员分享,可在线阅读,更多相关《工信版(中职)编程语言基础------C++模块9教学课件.ppt(51页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Y CF(中职)编程语言基础-C+模块9 教学课件模块9多态与虚函数 任务1多态概述 任务2静态联编与动态联编 任务3虚函数返回任务1多态概述 9.1.1 多态的概念 多态就是通过类的继承,使得同一个函数可以根据调用它的对象的类 多态就是通过类的继承,使得同一个函数可以根据调用它的对象的类型不同作出不同的响应。它与继承和重载共同构成了面向对象的三大 型不同作出不同的响应。它与继承和重载共同构成了面向对象的三大编程特性。编程特性。多态是通过虚函数来实现的,虚函数的使用本质就是将派生类类型 多态是通过虚函数来实现的,虚函数的使用本质就是将派生类类型的指针赋给基类类型的指针,虚函数被调用时会动态的判
2、断调用对象 的指针赋给基类类型的指针,虚函数被调用时会动态的判断调用对象的类型,从而给出相应的响应。的类型,从而给出相应的响应。9.1.2多态的应用 下面通过一个例子来说明关于多态的应用。下面通过一个例子来说明关于多态的应用。下一页 返回任务1多态概述【例 例9 9 一 一1 1】设计车辆类 设计车辆类Vehicle Vehicle,提供成员函数,提供成员函数drive drive 表示开车,定义 表示开车,定义drive drive 为纯虚函数 为纯虚函数;派生轿车 派生轿车Car Car 类,提供成员函数 类,提供成员函数drive drive 表示开轿车 表示开轿车;派 派生卡车 生卡车
3、Truck Truck 类,提供成员函数 类,提供成员函数drive drive 表示开卡车 表示开卡车;Car;Car 类和 类和Truck Truck 类都 类都继承 继承Vehicle Vehicle 类。类。Vehicle Vehicle 类提供一个纯虚函数 类提供一个纯虚函数drive:drive:表示开车。表示开车。定义 定义Vehicle Vehicle 类,成员函数 类,成员函数drive()drive()为纯虚函数。为纯虚函数。上一页 下一页 返回任务1多态概述上一页 下一页 返回任务1多态概述上一页 下一页 返回任务1多态概述 实例化一个 实例化一个Car Car 类的对象
4、和一个 类的对象和一个Truck Truck 类的对象,先各自调用各自的 类的对象,先各自调用各自的drive drive()()函数,然后将 函数,然后将Car Car 类和 类和Truck Truck 类对象的指针分别赋给一个指向 类对象的指针分别赋给一个指向Vehicle Vehicle类的指针,再次调用 类的指针,再次调用driver()driver()函数,比较结果。函数,比较结果。上一页 下一页 返回任务1多态概述上一页 下一页 返回任务1多态概述 运行结果为 运行结果为:启动轿车 启动轿车!启动卡车 启动卡车!-启动轿车 启动轿车!启动卡车 启动卡车!观察函数 观察函数dirve
5、r dirver,就会发现它并没有对传递来的参数进行判断,而是,就会发现它并没有对传递来的参数进行判断,而是直接调用成员函数 直接调用成员函数drive drive,至于是哪个类的成员函数,则是在执行程序,至于是哪个类的成员函数,则是在执行程序的时候确定的。下一次如果又添加了继承 的时候确定的。下一次如果又添加了继承VelllC;le VelllC;le 类的新的子类,函 类的新的子类,函数 数drive:drive:一也不需要更改,只要新的继承子类重写了 一也不需要更改,只要新的继承子类重写了drive drive 函数,函数,drive:drive:就可以调用到它。就可以调用到它。上一页
6、返回任务2静态联编与动态联编 在 在C+C+中,多态性主要是通过函数重载实现的。重载函数是指程序中 中,多态性主要是通过函数重载实现的。重载函数是指程序中对同名函数进行调用时,编译器会根据函数参数的类型和个数,决定 对同名函数进行调用时,编译器会根据函数参数的类型和个数,决定该调用哪一段函数代码来处理这个函数调用。这种把函数调用与适当 该调用哪一段函数代码来处理这个函数调用。这种把函数调用与适当的函数代码相对应的动作,叫做联编 的函数代码相对应的动作,叫做联编(binding)(binding)联编分为静态联编和动态联编。在编译阶段决定执行哪个同名的被 联编分为静态联编和动态联编。在编译阶段决
7、定执行哪个同名的被调用函数,这称为静态联编。而在编译阶段不能决定执行哪个同名的 调用函数,这称为静态联编。而在编译阶段不能决定执行哪个同名的被调用函数,只在执行阶段才能依据要处理的对象类型来决定执行哪 被调用函数,只在执行阶段才能依据要处理的对象类型来决定执行哪个类的成员函数,这叫动态联编。个类的成员函数,这叫动态联编。下一页 返回任务2静态联编与动态联编 多态性一也分为静态和动态两种。静态多态性是指定义在一个类或一 多态性一也分为静态和动态两种。静态多态性是指定义在一个类或一个函数中的同名函数,它们可根据参数表 个函数中的同名函数,它们可根据参数表(类型及个数 类型及个数)区别,并通过 区别
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 工信版 编程 语言 基础 C+ 模块 教学 课件
限制150内