ImageVerifierCode 换一换
格式:PPT , 页数:55 ,大小:787KB ,
资源ID:953039      下载积分:10 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-953039.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C++面向对象程序设计第5版.PPT)为本站会员(国***)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

C++面向对象程序设计第5版.PPT

1、C+面向对象程序设计(第 5版)浙江工业大学 软件学院国外经典教材 .计算机科学与技术 (美 ) Walter Savitch浙江工业大学 软件学院C+面向对象程序设计单击此处编辑母版标题样式单击此处编辑母版副标题样式第 5章 多态性与虚函数5.1 多态性的概念5.2 一个典型的例子5.3 虚函数5.4 纯虚函数与抽象类浙江工业大学 软件学院C+面向对象程序设计单击此处编辑母版标题样式单击此处编辑母版副标题样式5.1 多态性的概念v在 C+中,基 类 指 针 或引用可以直接引用其任何派生子 类 ,而无需程序 员 介入 这 种“用基 类 的指 针 或引用操 纵 多个 类 型 ”的能力称为 多 态

2、 ( polymorphism) 。v多 态 性 (polymorphism)是面向 对 象程序设 计 的一个重要特征。利用多 态 性可以 设计 和 实现 一个易于 扩 展的系 统 。浙江工业大学 软件学院C+面向对象程序设计单击此处编辑母版标题样式单击此处编辑母版副标题样式v例如,已知基 类 Camera派生出两个子 类OrthographicCamera和 PerspectiveCamera:v已知函数:void lookAt( const Camera *pcamera );CameraPerspectiveCameraOrthographicCamera浙江工业大学 软件学院C+面向对

3、象程序设计单击此处编辑母版标题样式单击此处编辑母版副标题样式v每次 lookAt()函数 调 用 时 都会 传 入一个 Camera子 类对 象的地址, 编译 器会自 动 地把它 转换 成适当的基 类 指 针 。例如:OrthographicCamera ocam;lookAt( /ok:自 动转换 成 Camera*PerspectiveCamera *pcam = new PerspectiveCamera;lookAt( pcam ); /ok:自 动 被 转换 成 Camera*vlookAt()的 实现 被屏蔽在 应 用程序的 实际Camera子 类 之外,如果以后增加或 删 除一个

4、子 类 ,无需改 变 lookAt().v子 类 多 态 性使得我 们 在 编 写 应 用程序的核心 时,可以不用考 虑 将来需要 维护 的 单 个 类 型。浙江工业大学 软件学院C+面向对象程序设计单击此处编辑母版标题样式单击此处编辑母版副标题样式v从系 统实现 的角度看,多 态 性分 为 两 类 : 静 态 多 态性和 动态 多 态 性。静 态 多 态 性是通 过 函数的重 载实现的。v利用基 类 指 针 和引用, 对 抽象基 类 的 公有接口进 行 编 程。在 运行 时 刻 ,真正要引用的 类 型被解析出来,并且 调 用适当的公有接口 实 例。v多 态 性是 “一个接口,多种方法 ”。v

5、在运行 时 刻解析出被 调 用的函数, 这 个解析 过程被称 为 动态绑 定 (dynamic binding)。在C+中,通 过 虚 拟 函数机制来支持 动态绑 定。通过继 承和 动态绑 定,子 类 型多 态 性 为 面向 对 象的程序 设计 提供了基 础 。浙江工业大学 软件学院C+面向对象程序设计单击此处编辑母版标题样式单击此处编辑母版副标题样式5.2 一个典型的例子v下面是一个承上启下的例子。一方面它是有关 继 承和运算符重 载 内容的 综 合 应 用的例子,通 过这 个例子可以 进 一步融会 贯 通前面所学的内容,另一方面又是作 为讨论 多 态 性的一个基 础 用例。v例 5.1:

6、先建立一个 Point(点 )类 ,包含数据成 员x,y(坐 标 点 )。以它 为 基 类 ,派生出一个 Circle(圆 )类 ,增加数据成 员 r(半径 ),再以 Circle类为 直接基类 ,派生出一个 Cylinder(圆 柱体 )类 ,再增加数据成 员 h(高 )。要求 编 写程序,重 载 运算符 “”,使之能用于 输 出以上 类对 象。浙江工业大学 软件学院C+面向对象程序设计单击此处编辑母版标题样式单击此处编辑母版副标题样式v声明基 类 Point类可写出声明基 类 Point的部分如下 :#include /声明 类 Pointclass Pointpublic:Point(f

7、loat x=0,float y=0);/有默 认 参数的构造函数void setPoint(float,float); /设 置坐 标值float getX( ) const return x; /读 x坐 标float getY( ) const return y; /读 y坐 标friend ostream /重 载运算符 “”protected: /受保 护 成 员float x,y;浙江工业大学 软件学院C+面向对象程序设计单击此处编辑母版标题样式单击此处编辑母版副标题样式/下面定 义 Point类 的成 员 函数/Point的构造函数Point:Point(float a,floa

8、t b) /对 x,y初始化x=a;y=b;/设 置 x和 y的坐 标值void Point:setPoint(float a,float b) /为 x,y赋 新 值x=a;y=b;/重 载 运算符 “”,使之能 输 出点的坐 标ostream return output;浙江工业大学 软件学院C+面向对象程序设计单击此处编辑母版标题样式单击此处编辑母版副标题样式v编 写 测试 程序 main函数:int main( )Point p(3.5,5.4); /建立 Point类对 象 pcoutx=p.getX( ),y=p.getY( )endl;/输 出 p的坐 标值p.setPoint(8.5,5.8); /重新 设 置 p的坐 标值coutp(new):pendl; /用重 载 运算符 “”输 出 p点坐 标v程序 编译 通 过 ,运行 结 果 为x=3.5,y=5.4p(new):8.5,5.8v测试 程序 检查 了基 类 中各函数的功能,以及运算符重载 的作用, 证 明程序是正确的。

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。