第二节类与对象的定义(Class & Object)
(补充)
9. 模板
多态(多态性polymorphism)
不同的对象收到同一消息可产生完全不同的结果,这一现象叫做多态
多态的效果
用户发送一个通用的消息,而实现
的细节则由接收对象自行决定
客观世界中的多态性
向对象发消息启动
汽车
洗衣机
程序
如何响应消息? 取决于对象本身
多态性概念
多态性和虚拟函数
C++可提供函数重载,运算符重载和虚拟函数实现多态性机制。
多态性实现方式
多
态
性
静态联编
动态联编
运算符重载
函数重载
虚拟函数
一. 函数重载
C++允许在同一作用域内含有多
个名字相同的函数重载
重载可提高函数使用的自然性
构造函数
成员函数
类以外的一般函数
重载函数的种类
重载构造函数举例
class timer {
int seconds; //秒
public:
timer( );
timer(char* ); //字符串
timer(int); //秒
timer(int,int); //分、秒
int gettimer( );
//…
};
类成员函数重载举例
class date{
int year,month,day;
public:
date( );
date(int,int,int);
date(char*);
void getdate(char*);
void getdate(int*,int*,int*);
};
类以外的一般函数重载举例
int max(int x,int y)
{ return x>y?x:y; }
double max(double x, double y)
{ return x>y?x:y; }
char *max(char* x, char *y)
{ return strcmp(x,y)>0?x:y; }
void main( )
{
cout<<max(9,4)<<endl;
cout<<max(, )<<endl;
cout<<max(“Windows”,”MS_DOS”)
<<endl;
}
参数表不完全一致。编译程序能自动根据调用时参数的对应确定所要执行的函数
参数表中若有缺省自变量,使用时可能出现二义性问题
同名函数功能差异不要过大
第三章 面向对象程序设计基础多态性 来自淘豆网m.daumloan.com转载请标明出处.