第9章模板ppt课件.ppt
《第9章模板ppt课件.ppt》由会员分享,可在线阅读,更多相关《第9章模板ppt课件.ppt(26页珍藏版)》请在三一办公上搜索。
1、第9章 模板,主要内容,知识点1:模板定义知识点2:函数模板与模板函数知识点3:类模板与模板类,知识点1:模板定义,所谓模板,就是将某段程序中的数据类型参数化,使得它能够处理某个范围内的数据类型.而不必为每种可能的类型都建立一个实例,从而避免了重复劳动,增强了程序的灵活性和有效性。模板具有形式类属参数:将数据类型作为模板的参数,参数化的数据类型就是形式类属参数模板须经过实例化后才能使用:实例化是指用某一具体数据类型替代模板中的形式类属参数的过程,该确定的数据类型称为实际类属参数。,知识点2:函数模板与模板函数,基本思想:实际应用中,一些函数的功能相同,唯一的区别只在于处理对象的数据类型不同,若
2、用函数重载实现,则需编写多个函数:例:int max(int i,int j)float max(float i,float j)return ij?i:j;return ij?i:j;编程时只提供一套实现该功能的程序实体,然后将数据类型作为参数传递,这就是模板的思想对不同数据类型的操作完全相同,用函数模板实现更为简洁方便,template 类型 函数名(形式参数表)语句序列,函数模板声明,函数模板定义由模板说明和函数定义组成 模板说明的类属参数必须在函数定义中至少出现一次 函数参数表中可以使用类属类型参数,也可以使用一般类型参数,template,类型形式参数的形式为:typename T1
3、,typename T2,typename Tn 或class T1,class T2,class Tn,例1:#include template T max(T a,T b)return a b?a:b;void main()cout max(3,5)is max(3,5)endl;cout max(y,e)is max(y,e)endl;cout max(9.3,0.5)is max(9.3,0.5)endl;,例2:冒泡排序模板template void SortBubble(ElementType*a,int size)int i,work;ElementType temp;for(i
4、nt pass=1;pass ai+1)temp=ai;ai=ai+1;ai+1=temp;work=0;if(work)break;,#include void main()int a5=45,20,30,100,5;SortBubble(a,5);for(int i=0;i5;i+)coutaiendl;,函数模板定义时应注意的问题,(1)在函数模板定义template中给出的每一个形式类属参数都必须出现在函数形参表中(2)由编译系统根据函数调用的实际参数类型自动完成函数模板的实例化,不须显式实例化(3)函数模板在实例化过程中不做任何类型转换例:已知函数模板max的两个形参都是形式类属参数
5、TYPE类型的,则以下两个应用错误 max(10,10.5);一个实参是整型,另一个是double型,类型不同,重载函数模板,有些特殊情况需要函数模板参与重载template TYPE max(TYPE x,TYPE y)return(x=y)?x:y;template TYPE max(TYPE x,TYPE y,TYPE z)TYPE w=(x=y)?x:y;return(w=z)?w:z;,template TYPE max(TYPE x,int n)TYPE m=x0;for(int i=0;in;i+)if(mxi)m=xi;return m;void main()float m,x
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 模板 ppt 课件
链接地址:https://www.31ppt.com/p-4882884.html