最新C C++语言程序设计第13章 模板(共38张PPT课件).pptx
《最新C C++语言程序设计第13章 模板(共38张PPT课件).pptx》由会员分享,可在线阅读,更多相关《最新C C++语言程序设计第13章 模板(共38张PPT课件).pptx(38页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第1313章章 模模 板板 第一页,共三十八页。2022-7-5第二页,共三十八页。2022-7-5l求两个数据中最小值的函数求两个数据中最小值的函数min()的实现过程。其中,的实现过程。其中,a和和b可以是整型、实型,当然也可以是用户可以是整型、实型,当然也可以是用户(yngh)定义定义的数据类型。的数据类型。C+是强类型语言,参数是强类型语言,参数a和和b的类型在的类型在编译时就必须声明。因此需要对不同的数据类型分别编译时就必须声明。因此需要对不同的数据类型分别定义不同的版本。定义不同的版本。 1. 模板模板(mbn)的作的作用用 int min(int a, int b) /求两个整
2、数中的最小值求两个整数中的最小值 int temp; temp=ab?a:b; return temp; float min(float a, float b) /求两个实型数据中的最小值求两个实型数据中的最小值 float temp; temp=ab?a:b; return temp; 第三页,共三十八页。l使用模板,把使用模板,把数据类型数据类型本身作为一个本身作为一个参数参数(cnsh),这样就可以使用一套代码完成不同数据类型的数,这样就可以使用一套代码完成不同数据类型的数据交换,实际上也使编程趋于标准化。与声明和定据交换,实际上也使编程趋于标准化。与声明和定义通常不在一起的普通函数不同
3、,函数模版的定义义通常不在一起的普通函数不同,函数模版的定义紧接其声明之后。其格式如下:紧接其声明之后。其格式如下:template 返回值类型返回值类型 函数名函数名 (形参表)(形参表)/函数体函数体关键字不能省略参数项由关键字class后跟一个标识符组成第四页,共三十八页。编写编写(binxi)函数模板的方法是:函数模板的方法是:第一步第一步:定义一个普通的函数,数据类型采用具体:定义一个普通的函数,数据类型采用具体的普通的数据类型。的普通的数据类型。第二步第二步:将数据类型参数化:将其中需要使用到的具:将数据类型参数化:将其中需要使用到的具体数据类型名体数据类型名(如如 int )全部
4、替换成由自己定义的抽象全部替换成由自己定义的抽象的类型参数名的类型参数名(如如T)。第三步第三步:在函数头前用关键字:在函数头前用关键字template引出对类型参引出对类型参数名的声明。这样就把一个具体的函数改造成一个通数名的声明。这样就把一个具体的函数改造成一个通用的函数模板:用的函数模板:第五页,共三十八页。【例例13.1】 用模板实现用模板实现(shxin)求两数中最小值函数求两数中最小值函数min( )。第六页,共三十八页。程序程序(chngx)输出结果为输出结果为:min(10,20)=10min(8.7,5.4)=5.4第七页,共三十八页。说明:说明:(1)虽然函数)虽然函数(h
5、nsh)模板中的类型参数模板中的类型参数T可以被实例可以被实例化为各种类型,其实际类型取决于模板函数给出的化为各种类型,其实际类型取决于模板函数给出的实参类型。但是,实参类型。但是,实例化实例化T的各模板函数的实参之间的各模板函数的实参之间必须保持完全一致的类型,否则会出现语法错误。必须保持完全一致的类型,否则会出现语法错误。第八页,共三十八页。【例例13.2 】分析下面分析下面(xi mian)程序的运行结果。程序的运行结果。第九页,共三十八页。第十页,共三十八页。l(2)区分两个术语)区分两个术语函数模板函数模板和和模板函数模板函数。其中。其中函函数模板是对一组函数的描述数模板是对一组函数
6、的描述,它不是一个实实在在,它不是一个实实在在的函数,编译系统并不产生任何执行代码;而的函数,编译系统并不产生任何执行代码;而模板模板函数则是类型参数函数则是类型参数(cnsh)实例化之后的函数实例化之后的函数。它们俩。它们俩之间的关系就好像类与对象的关系。之间的关系就好像类与对象的关系。第十一页,共三十八页。l(3)模板函数与重载是密切相关的。从函数模板产生)模板函数与重载是密切相关的。从函数模板产生的的模板函数都是同名的模板函数都是同名的,因此编译器采用重载的,因此编译器采用重载的解决方法调用相应函数。注意,模板函数虽然类解决方法调用相应函数。注意,模板函数虽然类似于重载函数,但它要更严格
7、一些。函数被重载似于重载函数,但它要更严格一些。函数被重载时,在每个函数体内时,在每个函数体内(t ni)可以执行不同的动作,但可以执行不同的动作,但同一函数模板实例化后的所有模板函数都必须执行同一函数模板实例化后的所有模板函数都必须执行相同的动作。相同的动作。第十二页,共三十八页。【例例13.3 】分析分析(fnx)以下程序的运行结果。以下程序的运行结果。第十三页,共三十八页。第十四页,共三十八页。第十五页,共三十八页。执行程序后,输出执行程序后,输出(shch)结果为:结果为:The sum of integer array is: 0The sum of double array is:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新C C+语言程序设计 第13章 模板共38张PPT课件 最新 C+ 语言程序设计 13 模板 38 PPT 课件
限制150内