C++面向对象程序设计 教学课件 作者 陈维兴 陈昕 C++邮电-8.ppt

C++面向对象程序设计 教学课件 作者 陈维兴 陈昕 C++邮电-8.ppt

ID:50041850

大小:335.00 KB

页数:28页

时间:2020-03-08

C++面向对象程序设计 教学课件 作者 陈维兴 陈昕 C++邮电-8.ppt_第1页
C++面向对象程序设计 教学课件 作者 陈维兴 陈昕 C++邮电-8.ppt_第2页
C++面向对象程序设计 教学课件 作者 陈维兴 陈昕 C++邮电-8.ppt_第3页
C++面向对象程序设计 教学课件 作者 陈维兴 陈昕 C++邮电-8.ppt_第4页
C++面向对象程序设计 教学课件 作者 陈维兴 陈昕 C++邮电-8.ppt_第5页
资源描述:

《C++面向对象程序设计 教学课件 作者 陈维兴 陈昕 C++邮电-8.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第8章模板8.1模板的概念8.2函数模板8.3类模板本章主要内容8.1模板的概念定义求最大值函数max():intmax(intx,inty){return(x>y)?x∶y;}floatmax(floatx,floaty){return(x>y)?x∶y;}doublemax(doublex,doubley){return(x>y)?x∶y;}这些函数的功能都是相同的,只是参数类型和函数返回类型不同问题:能否将这些函数合起来,只写一个通用函数呢?解决这个问题的方法:使用模板模板是实现代码重用机制的一种工具,它把类型定义为参数,实现类

2、型参数化。调用时,T可以分别取为int、float、double把类型定义为参数,如下所示:Tmax(Tx,Ty){return(x>y)?x∶y;}类型参数intmax(intx,inty){return(x>y)?x∶y;}floatmax(floatx,floaty){return(x>y)?x∶y;}doublemax(doublex,doubley){return(x>y)?x∶y;}把类型定义为参数,如下所示:Tmax(Tx,Ty){return(x>y)?x∶y;}类型参数调用时,T取int调用时,T取float调用时,

3、T取double函数模板模板类模板8.2函数模板8.2.1函数模板的声明函数模板可声明如下:函数模板也可以定义成如下形式:template返回类型函数名(模板形参表){函数体}使用函数模板时,类型参数必须实例化,即用实际的数据类型替代它。template是一个声明模板的关键字,它表示声明一个模板。template返回类型函数名(模板形参表){函数体}例如,求最大值函数模板,如下所示:templateTmax(Tx,Ty){return(x>y)?x∶y;}也可以定

4、义成如下形式:templateTmax(Tx,Ty){return(x>y)?x∶y;}T为类型参数模板形参表8.2.2函数模板的使用函数模板代表的是一类函数,使用时,类型参数必须实例化,即用实际的数据类型(既可以是系统预定义的标准数据类型(int、float、double等),也可以是用户自定义的类型)替代它。将函数模板中的类型参数实例化的参数称为模板实参。用模板实参实例化的函数称为模板函数。当编译系统发现有一个函数调用:函数名(模板实参表);时,将根据模板实参表中的类型生成一个函数即模板函数。该模板函数的函数体与函

5、数模板的函数体相同。#include//例8.1函数模板的使用。usingnamespacestd;template//模板声明,其中T为类型参数Tmax(Ta,Tb)//定义函数模板,“Ta,Tb”为模板形参表{return(a>b)?a:b;}intmain(){inti1=10,i2=56;doubled1=50.344,d2=4656.346;charc1='k',c2='n';cout<<"较大的整数是:"<

6、max(d1,d2)<

7、表了一类函数,模板函数表示某一具体的函数。说明:(1)在函数模板中允许使用多个类型参数。但是应当注意template定义部分的每个类型参数前必须有关键字typename(或class)。例8.3-1建立了有两个类型参数的函数模板。#includeusingnamespacestd;templatevoidmyfunc(type1x,type2y){cout<

8、23,10L);return0;}两个类型参数type1和type2运行结果为:10hao0.12310(2)在template语句与函数模板定义语句之间不允许有别的语句。例如下面的程序段就不能编译。template

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

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

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