- 1、本文档共17页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言-函数缺省、重载及模板
闫治国
同济大学 地下建筑与工程系
C++语言
函数(2)
1 函数参数缺省
2 函数重载
3 函数模板
本讲内容
C++对C的扩充:
带缺省参数的函数
C++通过在形参表列中对若干个形参指定缺省值,允许实参、形参个数不等
int fun(int a, int b, int c=100);
两种调用方式:
fun(10,20,30); //a=10,b=20,c=30
fun(10,20); //a=10,b=20,c=100
1 函数参数缺省
#include iostream.h
#include math.h
double s(double x , double eps=1e-6)
{int n=1; double w=0.0, t=1.0 ;
while(fabs(t)=eps)
{w+=t;
t=t*x/(n++);
}
return w;
}
【例】求下面级数的部分和。精度为:
?
?
1 函数参数缺省
缺省参数的说明必须出现在函数调用之前;或在函数说明中给出缺省值。
函数说明与函数定义中的缺省值不一致时,以函数说明中为准。
缺省参数可以指定多个,但须放在形参表列中的最右端。
例如:
void fun(int i, int j, int k, int m=3,int n=4);
假设函数调用语句为:
fun(1,2); //错误,至少应有三个实参
fun(10,20,30); //正确,m、n取默认值
fun(10,20,30,40); //正确,m取40 、n取默认值4
fun(10,20,30, ,50); //错误,只能从左至右匹配
1 函数参数缺省
2 函数重载
函数重载(Function Overloading):
当函数的参数类型不同或参数个数不同时,可以用同一函数名定义多个不同的函数
int max(int a,int b,int c){cout“函数A”;}
int max(int a,int b){cout“函数B”;}
float max(float a,float b){cout“函数C”;}
main()
{int a=5,b=6;
float c=10.5, d=20.3;
max(a,b); //函数B
max(a,b,10);//函数A
max(c,d); //函数C
}
注意:
1)通过参数个数、参数类型确定该调用哪个函数;
2)仅有返回值不同不能重载
2 函数重载
函数重载(Function Overloading):
当函数的参数类型不同或参数个数不同时,可以用同一函数名定义多个不同的函数
函数重载(Function Overloading):
重载函数的参数个数、参数类型或参数顺序三者中必须至少有一种不同
重载函数的返回值可以相同或不同
功能相同或相近的函数可应用重载函数的功能
保证函数调用时系统能够区分应调用的函数
2 函数重载
#include iostream.h
int abs(int x)
{return x0?x:-x; }
double abs(double x)
{return x0?x:-x; }
long abs(long x)
{return x0?x:-x; }
2 函数重载
函数重载(Function Overloading):
(1)参数类型不同的重载
void main()
{int x1=1;
double x2=2.5;
long x3=3L;
coutabs(x1)endl;
coutabs(x2)endl;
coutabs(x3)endl;
}
编译器根据函数参数的类型来确定应该调用哪个函数
函数重载(Function Overloading):
(1)参数类型不同的重载
2 函数重载
函数重载(Function Overloading):
(2)参数个数不同的重载
2 函数重载
注意:不要同时使用重载函数和缺省参数函数。
函数重载(Function Overloading):
(2)参数个数不同的重载
2 函数重载
#include iostream.h
int min(int a,int b)
{return ab?a:b; }
int min(int a,int b,int c)
{int t=min(a,b);
return min(t,c);}
int min(int a,int b,
您可能关注的文档
- 白云三线施工组织设计解读.doc
- 安全质量环保管理制度概要.docx
- 白庄2013变频改造可行性解读.doc
- 百词斩椅背核心词汇解读.doc
- 安全运行保护措施概要.doc
- B2B前端与视觉规范.doc
- B5U1Grammar过去分词.ppt
- B25.如何提升企业战略执行力-孙永玲.doc
- B5U1过去分词作定语和表语的用法.ppt
- 安全输血相关知识概要.ppt
- circuit cellaratmel avr设计大赛2006abstract entryat3329摘要条目.pdf
- 单元测试脚本财务核算组口岸业务流程tw v0.pdf
- 来源分布yeyvary等分散性count data计数据.pdf
- 高速陆地蜂窝结构进程号.pdf
- 信件选择淘金探.pdf
- 高二译牛模块选修同步辅导词汇结.pdf
- mtk平台写工具使用说明人工1 aenhelp writeimei.pdf
- 多脉冲转换器1lecture 2012 multipulse11th.pdf
- wy八级教学资源库16下unit 2.pdf
- 在社会反馈中考虑个人口味以改善饮食习惯paperw135.pdf
文档评论(0)