(8)--第8章 模板面向对象程序设计.pdfVIP

  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文档。上传文档
查看更多

第八章模板

学习目标

理解什么是模板

掌握函数模板与模板函数的使用

掌握类模板与模板类的使用

计算机科学与工程学院

模板的概念

函数重载可以实现具有相同功能的函数的函数名相同,使

程序更加易于理解。但是书写函数的个数并没有减少,重

载函数的代码几乎完全相同。如何解决代码重复的问题呢?

模板是类型参数化的工具。所谓类型参数化,是指把类型

定义为参数,当参数实例化时,可指定不同的数据类型,

从而真正实现代码的可重用性。

模板分函数模板和类模板,它们分别允许用户构造模板函

数和模板类。

计算机科学与工程学院

模板的概念

图8-1模板、模板函数、模板类、对象之间的关系

计算机科学与工程学院

函数模板与模板函数

声明函数模板的格式:

templateclass类型参数

返回类型函数名(模板形参表)

{

函数体

}

例如:输出不同类型数组的元素值可定义成函数模板

templateclassTtemplatetypenameT

voidPrintArray(T*Array,intcount)voidPrintArray(T*Array,intcount)

{{

for(inti=0;icount;i++)for(inti=0;icount;i++)

coutArray[i];coutArray[i];

coutendl;coutendl;

}}

计算机科学与工程学院

函数模板与模板函数

说明:

T是类型参数,它既可以是系统预定义的数据类型,也可以是用

户自定义的类型。

类型参数前需要加关键字class(或typename),这个class并不是

类的意思,而是表示任何类型的意思。

在使用模板函数时,关键字class(或typename)后面的类型参数,

必须实例化,即用实际的数据类型替代它。

里面的类型参数可以有一个或多个类型参数,但多个类型参

数之间要用逗号“,”分隔。

[例8-1]函数模板应用举例:输出不同类型数组的元素的值。

计算机科学与工程学院

函数模板与模板函数

注意:

在执行PrintArray函数调用时,根据参数的类型,系统自动在内

存中生成一个模板函数(即实例化函数),并执行该函数。

函数模板中可以使用多个类型参数。但每个模板形参前必须有关

键字class或typename。

[例8-2]多个类型参数应用举例:求两个数的最大值。

在template语句和函数模板定义语句之间不允许有其他的语句,

例如

templateclassT1,classT2

intn;//错误,不允许有其他的语句

T1Max(T1x,T2y)

{

return(xy)?x:y;

}

计算机科学与工程学院

函数模板与模板函数

模板函数类似于函数重载,但与函数重载不同。在进行函数重载

时,每个函数体内的动作可以相同也可以不同;但模板函数中的

动作必须相同。例如,下面的函数只能用函数重载,而不能用模

板函数。

voidprint(char*name)

{

coutnameendl;

}

voidp

文档评论(0)

177****2883 + 关注
实名认证
文档贡献者

热爱教育,专注于教育领域创作与分享,让我们共同进步。

1亿VIP精品文档

相关文档