cpp10-模板与泛型编程.ppt

cpp10-模板与泛型编程.ppt

ID:51489350

大小:1016.50 KB

页数:35页

时间:2020-03-24

cpp10-模板与泛型编程.ppt_第1页
cpp10-模板与泛型编程.ppt_第2页
cpp10-模板与泛型编程.ppt_第3页
cpp10-模板与泛型编程.ppt_第4页
cpp10-模板与泛型编程.ppt_第5页
资源描述:

《cpp10-模板与泛型编程.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、计算机学院计算机网络与信息安全研究室张荣博面向对象程序设计及C++第9章模板与泛型编程9.1模板概念(★)9.2函数模板9.3类模板9.4泛型编程(★)1模板的概念C++中常见的问题voidswap(int&a,int&b){inttmp=0;tmp=a;a=b;b=tmp;}//交换两个浮点数voidswap(float&a,float&b){floattmp=0.0;tmp=a;a=b;b=tmp;}intmain(){inta=10,b=20;floatc=1.2,d=2.4;cout<<“a=“<

2、<“b=”<

3、(DataType&a,DataType&b){DataTypetmp;tmp=a;a=b;b=tmp;}intmain(){inta=10,b=20;swap(a,b);return0;}4分析问题当需要交换两个浮点数时可以将DataType定义成float型数据即可。缺点:更改一种数据类型时,需要修改程序源代码,必须重新编译程序。无法解决的问题:如果程序中需要交换多种数据类型之间的数据该怎么办?5typedefintDataType;voidswap(DataType&a,DataType&b){DataT

4、ypetmp;tmp=a;a=b;b=tmp;}intmain(){inta=10,b=20;floatc=1.2,d=2.4;swap(a,b);swap(c,d);return0;}能否将swap函数的形式参数,作为一种无类型的参数,当使用它的时候再将它用具体的参数实现?就像采用滞后捆绑实现多态一样!6模板的定义模板本质上就是参数化多态,是一种使用无类型参数来产生一系列函数或类的机制,是C++的一个重要特性。模板可以分为两类:函数模板类模板7函数模板与模板函数函数模板可以用来创建一个通用功能的函数,以支持多

5、种不同形参,进一步简化重载函数的函数体设计。声明方法:template//模板声明Tmax(Tx,Ty)//定义函数模板{return(x>y)?x:y;}8模板函数max代表的是一类函数,是函数的集合;要用max进行真正的操作前,先要将模板参数T实例化为一般的类型(如int等);max是一个函数模板,将T实例化的参数称为模板实参,用模板实参实例化的函数称为模板函数。template//模板声明Tmax(Tx,Ty){return(x>y)?x:y;}9例题#include

6、stream>usingnamespacestd;templateTmax(Tx,Ty){return(x>y)?x:y;}voidmain(){inti=10,j=56;floatx1=50.34f,x2=56.34f;doubley1=673.36,y2=465.972;cout<<"Themaxofi,jis:"<

7、y1,y2)<

8、;当编译器遇到max(y1,y2)时,生成函数名max(double,double):max(y1,y2)用模板实参double将类型参数T进行了实例化11因此,上例中max函数可以用显式模板类型的方法写成下面的形势:voidmain(){inti=10,j=56;floatx1=50.34f,x2=56.34f;doubley1=673.36,y2=465.972;cout<<"Th

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

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

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