网站大量收购独家精品文档,联系QQ:2885784924

第9章 模板39525.pptVIP

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第9章 模板39525.ppt

第9章 模板 Chapter 9 Template 学习目标 1、理解模板的语法机制; 2、掌握模板的使用方法。 第9章 模板 Chapter 9 Template 教学内容: 1、模板( Template ) 2、函数模板(Function Template) 3、函数模板的参数(Function Template Parameter) 4、类模板(Class Template) 9.1 模板Template (1) 所谓模板是一种使用类型参数来产生一系列函数或类的机制,是C++的一个重要特性。它的实现,方便了更大规模的软件开发。 模板分为:类模板(class template)和函数模板(function template) 通过模板可以产生类或函数的集合,使它们操作不同的数据类型,从而避免需要为每一种数据类型产生一个单独的类或函数。 9.1 模板Template (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;} 若使用模板,则只定义一个函数: Templateclass typetype max(type a,type b) {return(ab)?a,b;} 9.2函数模板(Function Template)(1) 1、函数模板的一般定义形式: template类型形式参数表返回类型 函数名(形式参数表) { //函数体 } 请看实例。注意观察函数模板的定义与调用。 9.2函数模板(Function Template)(2) 2、函数模板实例 #include iostream.h templateclass type void myswap(type first,type second) //定义一个函数模板 {type temp; temp=first; first=second; second=temp;} void main() {int i=10,j=20; double f1=10.5,f2=50.0; char a=A,b=B; coutBefor swap:i=“ i,j=jendl; myswap(i,j);//定义一个整型模板函数 coutafter swap:i=“ i,jjendl; coutBefor swap:f1=“ f1,f2=f2endl; myswap(f1,f2); coutafter swap:f1=“ f1,f2=f2endl; coutBefor swap:a=“ a,b=bendl; myswap(a,b); coutafter swap:a=“ a,b=bendl; } 9.2函数模板(Function Template)(3) 运行结果: Before swap:I=10,j=20 After swap:I=20,j=10 Before swap:f1=10.5,f2=50.0 After swap:f1=10.5,f2=50.0 Before swap:a=A,b=B After swap:a=A,b=B 注意:(1)当你用指定函数类型调用函数模板时,编译器就创建一个模板函数; (2)函数模板与模板函数的区别。 9.2函数模板(Function Template)(4) 3、重载模板函数 #includeiostream.h #includestring.h template class type type max(type a,type b) {return(ab)?a,b; }; char* max(char* a,char* b) { return(strcmp(a,b)0?a:b); }; void main() { coutmax(\Hello\,\Good\)is max(Hello,Good)endl; } 注意: 函数与模板函数同名时,函数优先被调用。 9.3函数模板参数 (Function Template Parameter) 苛刻的类型匹配: 数据参数是按值的性质匹配的,所以相容类型之间可以转换; 而类型参数是按名字匹配的

文档评论(0)

cai + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档