- 1、本文档共82页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C++语言程序设计
第八章 多态性
本章主要内容
多态性
运算符重载
虚函数
纯虚函数
抽象类
多态性的概念
(这里讲的多态性是狭义的,仅指动态多态。广义的
多态应包括静态多态。)
动态多态性是指发出同样的消息被不同类型的对象
接收时有可能导致完全不同的行为。即,在用户不
作任何干预的环境下,类的成员函数的行为能根据
调用它的对象类型自动作出调整。
多态性是面向对象程序设计的重要特征之一。
是扩充性在“继承”之后的又一大表现。
多态性的分类
const_cast
用 专
强制多态 static_cast
reinterpret_cast
态 多
dynamic_cast
以及老式的()
性 态 多 重载多态 函数重载
运算符重载
用 通
参数多态 函数模板 这两项属这两项属
类模板 动态多态动态多态
态 多
包含多态 虚函数
多态性的实现
多态的实现可分为编译时多态和运行时多态,它们分别对应
静态联编和动态联编。
联编又称为绑定 (binding ),是指计算机程序中的语法元
素(标识符、函数等)彼此相关联的过程。
从绑定的时机看,在编译时就完成的绑定叫静态绑定;直到
运行时才能确定并完成的绑定叫动态绑定。
静态绑定消耗编译时间,动态绑定消耗运行时间。
静态绑定的程序到了运行阶段其功能就固定了,即使情况发
生了变化,功能无法改变。
动态绑定的程序由于绑定发生在运行阶段,其功能是未定
的,当情况变化了,功能也跟着变。于是表现出会聪明的判
断及具有灵活的行为。
关于“抽象”
指针—— 地址的抽象;
形参—— 数值的抽象;
对象—— 事物的抽象;
类—— 对象的抽象;
超类—— 类的抽象;
模板—— 类型的抽象;
多态—— 行为的抽象;
函数—— 过程的抽象;
类型—— 数据标识的抽象;
异常—— 错误的抽象;
函数对象—— 函数的一元化抽象;
流 —— 文件的抽象;
6
问题举例——复数的运算
载 重 符 算 运 class complex //复数类声明
{
public:
complex(double r=0.0,double i=0.0) //构造函数
{ real=r; imag=i; }
void display(); //显示复数的值
private:
double real;
文档评论(0)