没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
多态性与虚函数
多态性与虚函数
主讲人:陈 博
主讲人:陈 博
第
第
6
6
章
章
现实生活中的多态性实例:
现实生活中的多态性实例:
校长
校长
发布消息
发布消息
9
9
月
月
1
1
日开学
日开学
学生
学生
响应消息
响应消息
准备好课本准时到校上课
准备好课本准时到校上课
家长
家长
响应消息
响应消息
筹集学费
筹集学费
教师
教师
响应消息
响应消息
备课
备课
后勤
后勤
响应消息
响应消息
准备好教室、宿舍和食堂
准备好教室、宿舍和食堂
由于事先对各种人的任务已作了规定,因此,在得到同一个消
由于事先对各种人的任务已作了规定,因此,在得到同一个消
息时,各种人都知道自己应当怎么做(工作机制事先安排),这就
息时,各种人都知道自己应当怎么做(工作机制事先安排),这就
是多态性。可以设想如果不利用多态性那么校长就要分别给学生、
是多态性。可以设想如果不利用多态性那么校长就要分别给学生、
家长、教师、后勤等许多不同的对象分别发通知,分别具体规定每
家长、教师、后勤等许多不同的对象分别发通知,分别具体规定每
一种人接到通知后应该怎么办,显然这样做效率太低。
一种人接到通知后应该怎么办,显然这样做效率太低。
在
在
C++
C++
程序设计中,多态性(
程序设计中,多态性(
polymorphism)
polymorphism)
是指具有
是指具有
不同功能的函数可以用同一个函数名,这样就可以用一个
不同功能的函数可以用同一个函数名,这样就可以用一个
函数名调用不同内容的函数。
函数名调用不同内容的函数。
从系统实现的角度看,多态性分为两类:
从系统实现的角度看,多态性分为两类:
静态多态性:在程序编译时系统就能决定调用的是哪个函
静态多态性:在程序编译时系统就能决定调用的是哪个函
数,因此静态多态性又称为编译时的多态性,
数,因此静态多态性又称为编译时的多态性,
它是通过函数的重载实现的(运算符重载实
它是通过函数的重载实现的(运算符重载实
质上也是函数重载)。
质上也是函数重载)。
动态多态性:在程序运行过程中才动态地确定操作所针对
动态多态性:在程序运行过程中才动态地确定操作所针对
的对象。它又称运行时的多态性,是通过虚
的对象。它又称运行时的多态性,是通过虚
函数(
函数(
virtual function
virtual function
)
)
实现的。
实现的。
一、静态多态性实现示例:
一、静态多态性实现示例:
例
例
1
1
:求
:求
3
3
个数中最大的数。(分别考虑整数和实数的情况)
个数中最大的数。(分别考虑整数和实数的情况)
#
#
include <iostream>
include <iostream>
using namespace std;
using namespace std;
int max(int a,int b,int c) //
int max(int a,int b,int c) //
求
求
3
3
个整数中的最大者
个整数中的最大者
{
{
if (b>a) a=b;
if (b>a) a=b;
if (c>a) a=c;
if (c>a) a=c;
return a;
return a;
}
}
float max(float a,float b, float c) //
float max(float a,float b, float c) //
求
求
3
3
个实数中的最大者
个实数中的最大者
{
{
if (b>a) a=b;
if (b>a) a=b;
if (c>a) a=c;
if (c>a) a=c;
return a;
return a;
}
}
int main( )
int main( )
{int a,b,c; float d,e,f;
{int a,b,c; float d,e,f;
cout<<"
cout<<"
请输入
请输入
3
3
个整数
个整数
:";
:";
cin>>a>>b>>c;
cin>>a>>b>>c;
cout<<"
cout<<"
请输入
请输入
3
3
个实数
个实数
:";
:";
cin>>d>>e>>f;
cin>>d>>e>>f;
int m;
int m;
m= max(a,b,c); //
m= max(a,b,c); //
函数值为整型
函数值为整型
cout <<"max_i="<<m<<endl;
cout <<"max_i="<<m<<endl;
float n;
float n;
n=max(d,e,f); //
n=max(d,e,f); //
函数值为实型
函数值为实型
cout<<"max_f="<<n<<endl;
cout<<"max_f="<<n<<endl;
return 0;
return 0;
}
}
剩余33页未读,继续阅读
资源评论
- 不甘平庸2014-12-02这个里面介绍有关多态性的知识点,帮助我更加清晰的理解了多态性。
Joe_vv
- 粉丝: 99
- 资源: 342
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功