函数重载与函数模板.ppt

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
在编程时,有时我们要实现的是同一类的功能,只是有些细节不同。例如希望从3个数中找出其中的最大者,而每次求最大数时数据的类型不同,可能是3个整数、3个双精度数或3个长整数。程序设计者往往会分别设计出3个不同名的函数,其函数原型为: int max1(int a,int b, int c); //求3个整数中的最大者 double max2(double a,double b,double c); //求3个双精度数中最大者 long max3(long a,long b,long c); //求3个长整数中的最大者 C++允许用同一函数名定义多个函数,这些函数的参数个数和参数类型不同。这就是函数的重载(function overloading)。即对一个函数名重新赋予它新的含义,使一个函数名可以多用。;对上面求最大数的问题可以编写如下的C++程序。 例4.5 求3个数中最大的数(分别考虑整数、双精度数、长整数的情况)。 #include <iostream> using namespace std; int main( ) { int max(int a,int b,int c); //函数声明 double max(double a,double b,double c); //函数声明 long max(long a,long b,long c); //函数声明 int i1,i2,i3,i; cin>>i1>>i2>>i3; //输入3个整数 i=max(i1,i2,i3); //求3个整数中的最大者 cout<<″i_max=″<<i<<endl; double d1,d2,d3,d; cin>>d1>>d2>>d3; //输入3个双精度数 d=max(d1,d2,d3); //求3个双精度数中的最大者 cout<<″d_max=″<<d<<endl; long g1,g2,g3,g; cin>>g1>>g2>>g3; //输入3个长整数; g=max(g1,g2,g3); //求3个长整数中的最大者 cout<<″g_max=″<<g<<endl; } int max(int a,int b,int c) //定义求3个整数中的最大者的函数 { if(b>a) a=b; if(c>a) a=c; return a; } double max(double a,double b,double c) //定义求3个双精度数中的最大者的函数 { if(b>a) a=b; if(c>a) a=c; return a; } long max(long a,long b,long c) //定义求3个长整数中的最大者的函数 { if(b>a) a=b; if(c>a) a=c; return a; };运行情况如下: 185 -76 567↙ (输入3个整数) 56.87 90.23 -3214.78↙ (输入3个实数) 67854 -912456 673456↙ (输入3个长整数) i_max=567 (输出3个整数的最大值) d_max=90.23 (输出3个双精度数的最大值) g_max=673456 (输出3个长整数的最大值) 上例3个max函数的函数体是相同的,其实重载函数并不要求函数体相同。重载函数除了允许参数类型不同以外,还允许参数的个数不同。;例4.6 编写一个程序,用来求两个整数或3个整数中的最大数。如果输入两个整数,程序就输出这两个整数中的最大数,如果输入3个整数,程序就输出这3个整数中的最大数。 #include <iostream> using namespace std; int main( ) { int max(int a,int b,int c);

文档评论(0)

开心就好 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档