C++面向对象程序设计 教学课件 作者 李兰_第7章.ppt

C++面向对象程序设计 教学课件 作者 李兰_第7章.ppt

ID:50350245

大小:1.07 MB

页数:182页

时间:2020-03-08

C++面向对象程序设计 教学课件 作者 李兰_第7章.ppt_第1页
C++面向对象程序设计 教学课件 作者 李兰_第7章.ppt_第2页
C++面向对象程序设计 教学课件 作者 李兰_第7章.ppt_第3页
C++面向对象程序设计 教学课件 作者 李兰_第7章.ppt_第4页
C++面向对象程序设计 教学课件 作者 李兰_第7章.ppt_第5页
资源描述:

《C++面向对象程序设计 教学课件 作者 李兰_第7章.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、7.1模板的概念(TemplatesConcept)7.2函数模板与模板函数(FunctionTemplateandTemplateFunction)7.3类模板与模板类(ClassTemplateandTemplateClass)7.4标准模板库STL(StandardTemplateLibrary)7.5常见编程错误(CommonProgrammingErrors)本章小结(ChapterSummary)习题7(Exercises7)模板是C++语言的一个重要特性。模板使得程序员能够快速建立具有类型

2、安全的类库集合和函数集合,是通用程序设计的利器。它的实现,提供了重用程序源代码的有效方法,方便了更大规模的软件开发。7.1模 板 的 概 念(TemplatesConcept)但宏定义有两个问题,一是它避开了类型检查,在某些情况下,会导致不同类型参数之间的比较,引起错误;二是可能在不该替换的地方进行了替换,如:classA {intmax(intx,inty); //… }同样,在声明了一个类模板之后,可以创建类模板的实例,它称为模板类。类模板与模板类的区别是:类模板是一个模板,不是一个实实在在的类,其

3、中用到通用类型参数;而模板类是一个类,可以由它定义对象。   模板经过实例化后就得到模板函数或模板类,模板函数或模板类再经过实例化后就得到对象。模板、模板类、对象和模板函数之间的关系如图7-1所示。图7-1模板、模板类、对象和模板函数之间的关系7.2.1函数模板的声明(DeclarationofFunctionTemplate)为了定义函数模板或类模板,首先要进行模板说明,其作用是说明模板中使用的类属参数。函数模板可以用来创建一个通用的函数,以支持多种不同的形参,避免重载函数的函数体重复设计。它的最大特

4、点是把函数使用的数据类型作为参数。7.2函数模板与模板函数(FunctionTemplateandTemplateFunction)函数模板的声明形式为:template <返回类型><函数名>(参数表) {函数体}例如:template Tfuc(Tx,inty){ Tx; //… }如果主调函数中有以下语句:doubled;inta;fuc(d,a);则系统将用实参d的数据类型double去代替函数模板中的T生成函数:doublefuc(doubl

5、ex,inty){ doublex; //… }7.2.2函数模板(FunctionTemplate)函数模板定义由模板说明和函数定义组成。所有在模板说明的类属参数必须在函数定义中至少出现一次。函数参数表中可以使用类属类型参数,也可以使用一般类型参数。7.2.3模板函数(TemplateFunction)函数模板是对一组函数的描述,它以类型作为参数及函数返回值类型。它不是一个实实在在的函数,编译时并不产生任何执行代码。当编译系统在程序中发现有与函数模板中相匹配的函数调用时,便生成一个重载函数。该重载函数

6、的函数体与函数模板的函数体相同,参数为具体的数据类型。我们称该重载函数为模板函数,它是函数模板的一个具体 实例。【例7-1】求两个数之中的大值。 程序如下://ex7_1.cpp //Max.h #include #include usingnamespacestd; #ifndefMAX_H #defineMAX_Htemplate TMax(Ta,Tb) {returna>b?a:b;} #endif voidmain() {inta,b;

7、cout<<"Entertwointeger:"; cin>>a>>b;cout<<"Max("<>x>>y; cout<<"Max("<>c>>d;cout<<"Max("<

8、")="<>g>>f; cout<<"Max("<

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。