CPP课件第9章模板幻灯片.pptVIP

  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文档。上传文档
查看更多
类模板定义的一般形式 template class 模板形参表 class 类模板名 { //类体 }; 成员函数在类模板的体外实现 如果成员函数在类模板的体外实现,则每个成员函数前都必须用与声明该类模板一样的方法声明: template class 模板形参表 使这样的成员函数成为一个函数模板。 成员函数在类模板的体外实现实例 template class T void stack::push(T d) { if(tos==SIZE) { cout Stack is full\n; return; } stck[tos] = d; tos++; } template class T T stack::pop( ) { if(tos==0) { cout Stack is empty\n; return 0; // return null on empty stack } tos--; return stck[tos]; } 9.5 使用类模板 类模板必须显式实例化为模板类后才能使用,如: stackint 就产生一个整形的模板类。 类模板必须显式实例化后,才能生成对象: 模板名类型实参表 对象名(值实参表); stackint int_stack; 安全数组模板类实例 //example9_6 const int SIZE = 10; template class AType class atype { AType a[SIZE]; public: atype() { register int i; for(i=0; iSIZE; i++) a[i] = i; } AType operator[](int i); }; 安全数组模板类实例(续1) template class AType AType atypeAType::operator[ ](int i) { if(i0 || i SIZE-1) { cout \nIndex value of ; cout i is out-of-bounds.\n; exit(1); } return a[i]; } 安全数组模板类实例(续2) int main() { atype int intob; // integer array实例化为整型数组 atype double doubleob; // double array int i; cout Integer array: ; for(i=0; iSIZE; i++) intob[i] = i; for(i=0; iSIZE; i++) cout intob[i] ; cout \n; cout Double array: ; for(i=0; iSIZE; i++) doubleob[i] = (double) i/3; for(i=0; iSIZE; i++) cout doubleob[i] ; cout \n; intob[12] = 100; // generates runtime error return 0; } 小结 模板:对不同的数据类型的数据进行统一处理和描述。 分类: 模板 模板函数 模板类 对象 对象 对象 函数模板 类模板 本章习题 必做题:1,2,3 选作题:4,5 * 模板的英文为template,又可译作样板。现代的服装工业界广泛采用服装样板批量生产服装,从而大幅度提高生产效率。在面向对象程序设计中,我们可以使用C++语言中的函数模板或者类模板设计与数据类型无关的通用算法。这样的通用算法能够适用不同场合下不同的数据类型。通过针对不同的数据类型实例化这些模板,可以实现代码重用,从而达到提高软件生产率的目的。本章将详细讨论了如何使用函数模板和类模板实现通用算法。 * * * 又称为通配函数,或者通用函数。 * Example9_2 * Example9_3 * 求两参数最大值的函数:不使用模板的情况下,设计一个求两参数最大值的函数时,就需要为各种数据类型设计一系列的重载函数; * * 函数模板实例化时不支持数据类型的自动转换 * * Exam

文档评论(0)

精品课件 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档