- 1、本文档共79页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第13章模板分析
int main() { Account a = Account(100.00); SavingAccount sa = SavingAccount(1000.00, 0.03); CheckingAccount ca = CheckingAccount(3000.00, 100.00); a.credit(100.00); cout a.getBalance() endl; a.debit(50.00); cout a.getBalance() endl; sa.credit(1000.00); cout sa.getBalance() endl; sa.calculateInterest(); sa.debit(1000); cout sa.getBalance() endl; ca.credit(10.00); cout ca.getBalance() endl; ca.debit(1000.00); cout ca.getBalance() endl; return 0;} 第13章 泛型机制—模板 模板的用途 模板使我们可以用一个代码段指定一组相关(重载)函数(称为模板函数)或一组相关类(称为模板类)。 模板是C++的软件复用的功能之一。 模板是进一步学习容器类、迭代器和STL算法的基础。 函数模板的回顾 如果一组重载函数仅仅是参数的类型不一样,程序的逻辑完全一样,那么这一组重载函数可以写成一个函数模板。 函数模板的定义 一 般的定义形式 template模板形式参数表 //你把哪些类型定义为参数了? 返回类型 FunctionName(形式参数表) { //函数定义体 } templateclass T T power(T base, int exponent) {……} power函数的template版本 class T表示T是一种类型,而此类型将在调用此函数时才给予。 Template函数的调用方法 函数模板包含了两步: 函数模板的定义 函数模板的实例化 例子: 函数模板的定义,定义中用到通用类型参数。 函数模板定义实例 template class T void printArray( const T *array, const int count ){ for ( int i = 0; i count; i++ ) ?????? cout array [i ] ; ??? cout endl; } int类型数组的实例函数如下所示:??? void printArray( const int *array, const int count )??? { ???? for (int i = 0; i count; i++ )????????????? cout array [ i ] ;?????? cout endl;??? } 模板函数中的每一个形式参数要在函数参数表中至少出现一次。形式参数的名字可以只在模板函数的形式参数表中出现一次。同一个形式参数名可用于多个模板函数。 函数模板的实例化-----模板函数 ???若程序实例化int数组a、double数组b和char数组c,长度分别为5,7,6。 然后调用printArray打印每个数组。 用a的第一个参数,类型为int*;printArray(a,aCount); 使编译器实例化printArray模板函数,类型参数T为int。 用b的第一个参数,类型为double*; printArray(b,bCount); 使编译器实例化第二个pfintArry模板函数,类型参数T为double。 用c的第一个参数,类型为char*。 printArray(c,cCount); 使编译器实例化第三个printArray模板函数,类型参数T为char。 类也存在这种问题 类模板 类模板是描述一个通常意义上的类,然后建立这个类的实例类。所建的实例类虽然是通用类的副本,但是它具有指定的类型。C++的模板类提供了这种功能。 类模板通过实例化通用类的特定版本提高了软件的重用性。 为了说明如何定制通用类的模板以形成指定的模板类,模板类需要一种或多种类型参数,所以模板类也常常称为参数化类型。 需要生成多种模板类的程序员只需简单地编写一个通用类模板的定义。在需要用模板建立一个新类的时候,程序员只需要用一种简洁的表示方法 ,编译器就会写出模板类的源代码。 OUTL
您可能关注的文档
- 第12课说了没用就不如不分析.ppt
- 第12课美国的诞生分析.ppt
- 第13周教案分析.doc
- 第13周班会名言品读分析.ppt
- 第13章FLASH存储器分析.ppt
- 第13次课周围神经疾病分析.ppt
- 第12课过小孤山大孤山分析.ppt
- 第13章内能单元测试含答案分析.doc
- 第13章建筑电气照明分析.ppt
- 第13章传感器的综合应用—小制作分析.ppt
- 场地脚手架工程施工方案(3篇).docx
- 2024年浙江省丽水市松阳县玉岩镇招聘社区工作者真题及参考答案详解一套.docx
- 2024年河南省郑州市惠济区古荥镇招聘社区工作者真题及答案详解一套.docx
- 2024年浙江省杭州市淳安县文昌镇招聘社区工作者真题及完整答案详解1套.docx
- 2024年浙江省台州市三门县小雄镇招聘社区工作者真题带答案详解.docx
- 2024年浙江省宁波市余姚市河姆渡镇招聘社区工作者真题及完整答案详解1套.docx
- 2024年浙江省丽水市景宁畲族自治县雁溪乡招聘社区工作者真题及答案详解一套.docx
- 2024年浙江省杭州市临安市板桥乡招聘社区工作者真题及答案详解一套.docx
- 2024年湖北省宜昌市点军区土城乡招聘社区工作者真题及答案详解一套.docx
- 2024年浙江省台州市路桥区桐屿街道招聘社区工作者真题附答案详解.docx
文档评论(0)