- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
网络游戏开发-C++程序设计
第9章 模板与STL
龄巳投烃膳坦叹赊鬃足膜迸抄咬凰岳翘础桩甲唬卢敛删降霄饥骨私劫睫坛模板和STL ( 1 )模板和STL ( 1 )
第9章 模板与STL
函数模板
类模板
模板的概念
类模板的定义和使用
类模板中的静态成员和友元
类模板中的特例版本
理解模板技术
掌握函数模板的使用
掌握类模板的使用
媚史奋曙黄挛器瞩谜抬漱爸搞结袖馆蓟丧钠淬弃撒畦谚缴搓哲盼惊蔽键爸模板和STL ( 1 )模板和STL ( 1 )
第9章 模板与STL
9.1 模板
模板(templates)
针对“一个或多个尚未明确的数据类型(包括类类型)”所设计的函数或类。
在不确定要操作数据的类型的情况下就实现操作方法。
模板是在函数和类的基础上提供了更高一层的抽象。
俄痘祸开立你精咨抑灸人锑童巳拒雷咋午钦萌炳仅搭锤粗孺溶浙诚努更晚模板和STL ( 1 )模板和STL ( 1 )
第9章 模板与STL
9.1 模板
9.1.1 函数模板
1.函数模板的概念
利用函数模板(带类型参数的函数),一次定义出具有共性的一组函数。
除类型参数外
函数名相同,参数个数相同
返回类型可以不同
处理多种不同类型数据的函数
萨尉靖揖厨桔挫器笔茧斑纸触湿奥抚阂徊察玉探梳豢冉折抽戍销痔附情诲模板和STL ( 1 )模板和STL ( 1 )
第9章 模板与STL
9.1 模板
9.1.1 函数模板
1.函数模板的概念
int max (int a, int b)
{
//函数max,求两个int 型数据的最大值
if(ab) return a;
else return b;
}
double max (double a, double b)
{
//重载函数max,求两个double 型数据的最大值
if(ab) return a;
else return b;
}
…
template class T
T max (T a, T b)
{
if(ab) return a;
else return b;
}
重载函数
函数模板
凸局哪曳盘炽盎瓣谅镀荷谰土纲秦壶傍证郑险勿钩雪蔗氯曳酋录靴询陡甥模板和STL ( 1 )模板和STL ( 1 )
第9章 模板与STL
9.1 模板
9.1.1 函数模板
2.函数模板的说明
template 模板参数表 函数定义;
template:关键字。指明为函数模板或类模板。
模板参数表:用尖括号括起来,一个或多个模板参数,用“,”分开。
模板参数:其格式为class类名,其中的类名是一个标识符,该类名对应的实参类型可以是任何类型。
返回类型 函数名(参数表){函数体};
矾栓键星期缮傅螺烙蛋蹋浆眠拂份姥泛扳框疚忍她海耻瞥哇次拱兄绒霄个模板和STL ( 1 )模板和STL ( 1 )
第9章 模板与STL
9.1 模板
9.1.1 函数模板
2.函数模板的说明
函数模板在被调用时与同名的函数调用没有什么区别
函数调用过程:
1)首先搜索程序说明中是否有参数表恰与max(c1,c2)之参数表完全相同的同名函数,如果有,就调用此函数代码付诸执行。否则执行下一步;
2)检查是否有函数模板,经适当实例化成为参数匹配的同名函数。如果有,调用此实例化的模板函数代码付诸执行。否则执行下一步;
釜郭戈乖掇聘搅宜窃浸躁冷别翌轰题硅习袭岭粘滤札型坍卜频吧搜悦匀皇模板和STL ( 1 )模板和STL ( 1 )
第9章 模板与STL
9.1 模板
9.1.1 函数模板
2.函数模板的说明
3)检查是否有同名函数,可经参数的自动转换后实现参数匹配。如果有,调用该函数代码付诸执行;
4)如果三种情况都未找到匹配函数,则按出错处理;
5)值得注意的是,模板函数调用时,与一般函数不同之处在于,它不允许类型的转换。
模板函数也可以重载。同样,重载的条件是二同名模板函数必须有不同的参数表。
烛白漆噬丛便键肖捌传释担瘟煤恭右寓盲椎预密储督翠舔窖及衔忘训概乏模板和STL ( 1 )模板和STL ( 1 )
第9章 模板与STL
9.1 模板
9.1.1 函数模板
3.函数模板应用举例
#include iostream
using namespace std;
//第一个函数模板sum,使用了一个类型参数Type,具有两个形参
//本函数模板sum 的功能为:求出array 数组的前size 个元素之和并返回
template class Type Type sum (Type * array, int size )
{
Type total=0;
for (int i=0;isize;i++) //累加前size 个数到total
total+=*(array+i);
return tot
文档评论(0)