第十八章模板.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
面向对象程序设计 第十八章 模板 第 PAGE 1 页 共 NUMPAGES 10页 第十八章 模板 利用模板来设计函数与类,使得用户定义的函数和类好象是一块可变的模板,利用模板功能可使函数的返回值与参数表或类的数据成员成为所期望的各种数据类型。 18.1 模板函数 求两个数的最大值: int max(int num1 , int num2); 该函数适合与求两个整数的最大值,对于其他类型不适用或不能得到正确结果: int maxium = max(10,20); double maxium = max(3.14,5.6); 利用函数重载来实现求正确的最大值(程序8.1): #include iostream.h #include conio.h #include string.h int max(int num1,int num2); double max(double d1,double d2); char* max(char* str1,char* str2); void main() { int m1 = max(100,200); double m2 = max(32.1,3.5); char* m3 = max(Alistar,Magee); cout The maxium of 100 and 200 is : m1 endl; cout The maxium of 32.1 and 3.5 is : m2 endl; cout The maxium of Alistar and Magee is : m3 endl; } int max(int num1,int num2) { return (num1num2)?num1:num2; } double max(double d1,double d2) { return (d1d2)?d1:d2; } char* max(char* str1,char* str2) { return (*str1*str2)?str1:str2; } 程序输出结果: The maxium of 100 and 200 is :200 The maxium of 32.1 and 3.5 is :32.1 The maxium of Alistar and Magee is :Magee 使用函数重载,我们必须对每一个类型重载一个函数来满足要求,这在程序设计时成为一种负担,C++中提供了一种模板功能,来解决每一重载函数的实际操作部分基本一致(除了所使用的参数类型)。 18.2 如何定义模板函数 定义一个模板函数的格式: template class Type Type fun (Type,Type,...){...}; 类型定义Type是模板的形参,其名字可以由设计者自定且此参数前必须加上关键字class,表示该参数可以为C++的任何一个内建数据类型或用户自定义数据类型。 模板函数可以看成一般的函数,Type参数可以看成是函数fun的类型定义,对于函数定义部分: Type fun (Type,Type,...) 当Type为int时,函数便视为: int fun(int,int,...) 当Type为double时,函数便视为: double fun(double,double,...) 程序18.2: #include iostream.h #include conio.h template class Type Type max(Type v1,Type v2) { return (v1v2)?v1:v2; } void main() { int m1 = max(100,200); double m2 = max(32.1,3.5); char* m3 = max(Alistar,Magee); cout The maxium of 100 and 200 is : m1 endl; cout The maxium of 32.1 and 3.5 is : m2 endl; cout The maxium of Alistar and Magee is : m3 endl; } 在程序中语句: int max(int v1,int v2) 给出两个参数类型为int类型,编译器视Type为int,整个max函数便视为: int max(int v1,int

文档评论(0)

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

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

1亿VIP精品文档

相关文档