C++程序设计 教学课件 作者 郑莉第14章 模板.ppt

C++程序设计 教学课件 作者 郑莉第14章 模板.ppt

ID:50041122

大小:567.50 KB

页数:45页

时间:2020-03-08

C++程序设计 教学课件 作者 郑莉第14章 模板.ppt_第1页
C++程序设计 教学课件 作者 郑莉第14章 模板.ppt_第2页
C++程序设计 教学课件 作者 郑莉第14章 模板.ppt_第3页
C++程序设计 教学课件 作者 郑莉第14章 模板.ppt_第4页
C++程序设计 教学课件 作者 郑莉第14章 模板.ppt_第5页
资源描述:

《C++程序设计 教学课件 作者 郑莉第14章 模板.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1第14章模板清华大学郑莉2目录14.1函数模板14.2类模板3第14章模板在C++中有时候会遇到这样的情况:要求实现比较两个double类型数据或两个char类型变量的大小并返回较小值。根据之前学过的知识,我们只能这么写:charMin(constchara,constcharb){returna

2、麻烦,二来这样做只能涵盖已知的类型,不能将函数用于未知类型。C++中,使用了模板(template)的概念来解决上述问题,实现了对于所有的类型,都能完成特定的功能。5第14章模板不管是具有相同功能的函数,还是共有某种功能的类,都可以将多个函数或类汇总,将其所处理的类型也作为一种参数,这种方法叫做参数化多态性,这一概念,在C++中称作泛型编程。614.1函数模板对于本章开头提到的问题,即对不同类型的变量使用相同的函数操作时,可以用函数模板(functiontemplate)实现。第14章模板714.1.1函数模板的概念、定义与应用从定义上讲,函数模板是一个独立于类型的函数。从

3、功能上讲,函数模板提供一个在函数调用时可以自动生成各种类型函数实例的算法。形象地说,函数模板就是函数的函数。函数模板使得代码的可重用性大大提高,从而提高开发效率。在使用函数模板时,程序员只需对函数编写一次,然后基于调用函数时提供的参数类型,自动产生相应的函数来正确处理该类型的数据。14.1函数模板814.1.1函数模板的概念、定义与应用函数模板的格式如下:所有函数模板的定义都以关键字template开始14.1函数模板template/*或template

4、Tn>*/TYPEFunction(parameter1,parameter2,...,parameter_n){statements;}914.1.1函数模板的概念、定义与应用template后面是使用尖括号(<>)括起来的类型参数列表(templateparameterlist),类型参数表可以包含一个或多个类型参数(又称模板形参,templateparameter),这些类型参数代表的可以是未知的类型,以关键字class或typename修饰,也可以是已知的内置类型或自定义的类(这种情况下不使用class或typename关键字),这样类型参数就可以用来指定模板本身的

5、形参和返回值类型,以及声明函数中的局部变量。TYPE表示函数的返回类型;Function是函数名,parameter是函数的参数;statements是函数体。14.1函数模板1014.1.1函数模板的概念、定义与应用例1:函数模板的示例程序。14.1函数模板例题要求:了解只包含一个类型参数的函数模板的格式与实例化。源代码:#includeusingnamespacestd;templateTMin(constTa,constTb){returna

6、t<

7、m&operator<<(ostream&out,constClock&c);friendbooloperator<(constClock&c1,constClock&c2);public:Clock(inth=0,intm=0,ints=0);private:inthour,minute,second;};1314.1.2函数模板的实例化函数模板本身既不是类又不是函数,编译器使用模板产生指定的函数的特定版本,产生模板的特定类型实例的过程称为实例化。编译器通过查看函数实参的类型和值,确定模板实参的类型和值,来生成函

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

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

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