《(18)--6.1静态多态性之函数重载.ppt》由会员分享,可在线阅读,更多相关《(18)--6.1静态多态性之函数重载.ppt(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、什么是多什么是多态性性 通俗理解:通俗理解:一个事物表现出多种形态例如:校长发布开学消息、上课打铃等 面向对象中的多态性:面向对象中的多态性:向不同的对象发送同一个消息,不同的对象在接收时会产生不同的行为(即方法)例如:函数重载、运算符重载 具体表现形式:具体表现形式:具有不同功能的函数使用同一个函数名,从而实现同一个函数名调用不同内容的函数。什么是多什么是多态性性 分类:分类:静态多态性(编译时多态性):程序编译时就能确定要调用哪个函数实现方式:函数重载特点:调用速度快、效率高,但缺乏灵活性动态多态性(运行时多态性):程序运行过程中才动态地确定操作所针对的对象实现方式:虚函数静静态多多态性之
2、函数重性之函数重载 问题的提出:问题的提出:如何通过函数,找出三个数中的最大数?要求能够处理不同数据类型的最大值求解。缺点:函数调用不方便 思考:思考:能否不用3个函数名而用一个统一的函数名呢?答案:函数重载int max1(int a,int b,int c);/求求3个整数中的最大数个整数中的最大数double max2(double a,double b,double c);/求求3个双精度数中的最大数个双精度数中的最大数longmax3(long a,long b,long c);/求求3个个长整数中的最大数整数中的最大数静静态多多态性之函数重性之函数重载 定义:定义:允许用同一函数名
3、定义多个函数,而这些函数的参数个数和参数类型可以不相同静态多态性!程序程序实例例参数参数类型不同的函数重型不同的函数重载#include using namespace std;int max(int a,int b,int c)/定定义求求3个整数中的最大数的函数个整数中的最大数的函数if(ba)a=b;if(ca)a=c;return a;double max(double a,double b,double c)/定定义求求3个双精度数中的最大数的函数个双精度数中的最大数的函数if(ba)a=b;if(ca)a=c;return a;long max(long a,long b,long
4、 c)/定定义求求3个个长整数中的最大数的函数整数中的最大数的函数if(ba)a=b;if(ca)a=c;return a;程序程序实例例参数参数类型不同的函数重型不同的函数重载int main()int i1,i2,i3,i;cini1i2i3;/输入入3个整数个整数i=max(i1,i2,i3);/求求3个整数中的最大数个整数中的最大数couti_max=id1d2d3;/输入入3个双精度数个双精度数d=max(d1,d2,d3);/求求3个双精度数中的最大数个双精度数中的最大数coutd_max=dg1g2g3;/输入入3个个长整数整数g=max(g1,g2,g3);/求求3个个长整数中
5、的最大数整数中的最大数coutg_max=gendl;程序程序实例例参数个数不同的函数重参数个数不同的函数重载#include using namespace std;int max(int a,int b,int c)/此此max函数的作用是求函数的作用是求3个整数中的最大数个整数中的最大数 if(ba)a=b;if(ca)a=c;return a;int max(int a,int b)/此此max函数的作用是求两个整数中的最大数函数的作用是求两个整数中的最大数 if(ab)return a;else return b;程序程序实例例参数个数不同的函数重参数个数不同的函数重载int mai
6、n()int a=8,b=-12,c=27;coutmax(a,b,c)=max(a,b,c)endl;/输出出3个整数中的最大数个整数中的最大数coutmax(a,b)=max(a,b)endl;/输出两个整数中的最大数出两个整数中的最大数程序运行程序运行结果果:max(a,b,c)=27max(a,b)=8静静态多多态性之函数重性之函数重载 注意:注意:不能只有函数的类型不同而参数的个数和类型相同例如:以下重载方式出错int f(int);/函数返回值为整型long f(int);/函数返回值为长整型void f(int);/函数无返回值原因:同一调用形式 f(10)同名函数的功能应当相同或相近小小结多态性的含义1多态性的分类2静态多态性之函数重载3