第12章 模板.ppt
《第12章 模板.ppt》由会员分享,可在线阅读,更多相关《第12章 模板.ppt(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第12章 模板 第第1212章章 模板模板12.1 模板的概念12.2 函数模板 12.3 类模板 12.4 模板应用实例 模板是C+支持参数化多态的工具,使用模板可以使用户为类或者函数声明一种一般模式,使得类中的某些数据成员或者成员函数的参数、返回值取得任意类型。12.1 12.1 模板的概念模板的概念所谓模板是一种使用无类型参数来产生一系列函数或类的机制,是C+的一个重要特性。它的实现,方便了更大规模的软件开发。若一个程序的功能是对某种特定的数据类型进行处理,则可以将所处理的数据类型说明为参数,以便在其他数据类型的情况下使用,这就是模板的由来。模板是以一种完全通用的方法来设计函数或类而不必
2、预先说明将被使用的每个对象的类型。通过模板可以产生类或函数的集合,使它们操作不同的数据类型,从而避免需要为每一种数据类型产生一个单独的类或函数。例如,设计一个求两参数最大值的函数,不使用模板时,需要定义四个函数:int max(int a,int b)return(ab)?a,b;long max(long a,long b)return(ab)?a,b;double max(double a,double b)return(ab)?a,b;char max(char a,char b)return(ab)?a,b;若使用模板,则只定义一个函数:Templatetype max(type a,
3、type b)return(ab)?a,b;C+程序由类和函数组成,模板也分为类模板(class template)和函数模板(function template)。在说明了一个函数模板后,当编译系统发现有一个对应的函数调用时,将根据实参中的类型来确认是否匹配函数模板中对应的形参,然后生成一个重载函数。该重载函数的定义体与函数模板的函数定义体相同,它称之为模板函数(template function)。同样,在说明了一个类模板之后,可以创建类模板的实例,即生成模板类。12.2 12.2 函数模板函数模板C+提供的函数模板可以定义一个对任何类型变量进行操作的函数,从而大大增强了函数设计的通用性。
4、使用函数模板的方法是先说明函数模板,然后实例化成相应的模板函数进行调用执行。12.2.1 函数模板说明函数模板说明函数模板的一般说明形式如下:template template (模板函数形参表)(模板函数形参表)/函数定义体函数定义体 其中,可以包含基本数据类型,也可以包含类类型。类型形参需要加前缀class。如果类型形参多于一个,则每个类型形参都要使用class。中的参数必须是惟一的,而且中至少出现一次。函数模板定义不是一个实实在在的函数,编译系统不为其产生任何执行代码。该定义只是对函数的描述,表示它每次能单独处理在类型形式参数表中说明的数据类型。例例12-112-1:编写一个对具有:编写
5、一个对具有n n个元素的数组个元素的数组a a 求最小求最小值的程序,要求将求最小值的函数设计成函数模板。值的程序,要求将求最小值的函数设计成函数模板。#include template T min(T a,int n)int i;T minv=a0;for(i=1;iai)minv=ai;return minv;void main()ina a=1,3,0,2,7,6,4,5,2;double b=1.2,-3.4,6.8,9,8;cout”a数组的最小值为:”min(a,9)endl;cout”b数组的最小值为:”min(b,4)endl;此程序的运行结果为:a数组的最小值为:0b数组的最
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第12章 模板 12
限制150内