c++primer函数模板

c++primer函数模板

ID:39305452

大小:278.11 KB

页数:32页

时间:2019-06-30

c++primer函数模板_第1页
c++primer函数模板_第2页
c++primer函数模板_第3页
c++primer函数模板_第4页
c++primer函数模板_第5页
资源描述:

《c++primer函数模板》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第六章模板6.1模板的概念6.2函数模板与模板函数6.3类模板和模板类1模板是面向对象多态性的一种表现,1990年ANSIC++委员会将模板确定为组成部分,BorlandC++3.0以上和VisualC++都支持模板。模板包括函数模板和类模板。一、为什么要引入模板?模板的引入一个最重要的目的就是简化编程。由于C++是强类型语言,许多类似功能(函数或类)只要数据类型不同,就必须定义多份,不但使源程序增长,工作量也加大。2例如,设计一个求两参数最大值的函数,不使用模板时,需要定义四个函数:intmax(inta,intb)

2、{return(a>b)?a:b;}floatmax(floata,floatb){return(a>b)?a:b;}doublemax(doublea,doubleb){return(a>b)?a:b;}charmax(chara,charb){return(a>b)?a:b;}这些函数的功能甚至语句都类似,能否只写一套代码,使用与多种数据类型呢?6.1模板的概念36.1模板的概念解决的答案就是模板,通过类型参数化来实现代码重用——即把数据类型定义为参数,使用时才给出具体类型来实例化类型参数。模板分为函数模板(fun

3、ctiontemplate)和类模板(classtemplate)。函数模板模板函数实例化类模板模板类实例化4模板模板函数模板类对象实例化实例化图6.1模板、模板类、模板函数和对象之间的关系实例化6.1模板的概念5所谓函数模板,就是写一个函数模子,用这个模子套印出许多功能相同,参数类型和返回类型不同的函数。模板函数:函数模板实例化后的具体函数。6.2函数模板与模板函数66.2.1函数模板的声明与模板函数的生成函数模板的声明格式如下:template返回类型函数名(模板形参表){函数体}type是模

4、板形参,在使用函数模板时,必须将其实例化,即用实际的数据类型替代它。6.2函数模板与模板函数7函数max()若使用模板,则只定义一个函数:templatetypemax(typea,typeb){return(a>b)?a:b;}函数模板定义不是一个实实在在的函数,编译系统不为其产生任何执行代码。该定义只是对函数的描述,表示它每次能单独处理在类型形式参数表中说明的数据类型。6.2函数模板与模板函数8//例6.1#includetemplateTmax(Tx,

5、Ty){return(x>y)?x:y;}main(){inti1=10,i2=56;floatf1=12.5,f2=24.5;doubled1=50.344,d2=4656.546;charc1=‘k’,c2=‘n’;6.2函数模板与模板函数9cout<<“themaxofi1,i2=“<

6、1,c2=“<y)?x:y;}floatmax(floatx,floaty){return(x>y)?x:y;}doublemax(doublex,doubley){return(x>y)?x:y;}charmax(charx,chary){return(x>y)?x:y;}结果:themaxofi1,i2=56themaxoff1,f2=24.5themaxofd1,d2=4656.546themaxofc1,

7、c2=n10函数模板max(Tx,Ty)模板函数1max(i1,i2)实例化1T->int模板函数2max(f1,f2)实例化2T->float模板函数3max(d1,d2)实例化3T->double模板函数4max(c1,c2)实例化4T->char函数模板:一组函数的抽象模板函数:一个具体的函数代码重用,提高了程序设计的效率11例6.2:#includetemplateTsum(T*array,intsize=0){Ttotal=0;for(inti=0;i

8、)total+=array[i];returntotal;};intint_array[]={1,2,3,….,10};doubledouble_array[]={1.1,2.2,……,9.9,10.10};voidmain(){intitotal=sum(int_array,10);doubledtotal=sum(double

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。