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

Chapter-780359.pptVIP

  1. 1、本文档共17页,可阅读全部内容。
  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文档。上传文档
查看更多
7.2 类模板 类模板用于创建类属类和抽象数据类型,从而使程序员可以创建一般形式的类,而不必编写处理不同数据类型的类。 类模板的定义和实现必须在同一个文件中,通常是头文件。编译器看到模板实现时才展开模板。 Example: Program 7-4. * 第7章 模板 皮德常 教授、博导 南京航空航天大学 信息科学与技术学院 * 7.1 函数模板 模板:函数和类模板。 函数模板简化重载。编译器遇到函数调用时,将根据实参类型和函数模板一起产生函数代码。 函数模板并不是真正意义上的函数,定义形式:template 类型参数表 返回值类型 函数名 ( 形式参数表 ){// 函数体} * 7.1.1 从函数重载到函数模板 函数重载是函数名相同,参数一定不完全相同,采用函数重载,要对每个函数分别写出相应的代码。例如:int square ( int number ){return number * number ;}float square ( float number ){return number * number ;} 采用函数模板实现square:template class T T square ( T number ){return number * number ;} 【例7.1】函数模板应用举例。 template class T T square ( T number ) {return number * number ; } int main ( ) { int userInt ;float userFloat ;cin userInt userFloat ;cout 它们的平方分别是: ;cout square ( userInt ) square ( userFloat );return 0; } 7-1.cpp * 7.1.2 定义函数模板的方法 (1) 定义一个普通的函数void swap ( int var1 , int var2 ){int temp ;temp = var1 ;var1 = var2 ;var2 = temp ;} (2) 在函数开头加上template class T ,将函数形参的类型和局部变量temp的类型int采用T替换。 * 7.1.3 在函数模板中使用多种类型 函数模板中可以使用多种通用类型,每个类型必须具有自己的参数:template class T1 , class T2void swap ( T1 var1 , T2 var2 ){ T1 temp ;temp = var1 ;var1 = ( T1 ) var2 ;var2 = ( T2 ) temp ;} * 7.1.4 函数模板重载 template class T T sum ( T valueOne , T valueTwo ) {return valueOne + valueTwo ; } template class T T sum ( T valueOne , T valueTwo , T valueThree ) {return valueOne + valueTwo + valueThree ; } 调用形式:sum ( num1 , num2 );sum ( num1 , num2 , num3); 形式之一 * 7.1.4 函数模板重载 float sum ( float valueOne , float valueTwo ) {return valueOne + valueTwo ; } template class T T sum ( T valueOne , T valueTwo , T valueThree ) {return valueOne + valueTwo + valueThree ; } 形式之二 template class T class FreewillArray { T*aptr; intarraySize; void memError(void); // allocation errors void subError(void); // out of range public: FreewillArray( ) { aptr = 0; arraySize = 0;} FreewillArray( int ); FreewillArray(const FreewillArra

文档评论(0)

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

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

版权声明书
用户编号:5311233133000002

1亿VIP精品文档

相关文档