第5章面向对象程序设计课件.ppt

第5章面向对象程序设计课件.ppt

ID:59209100

大小:384.00 KB

页数:32页

时间:2020-09-26

第5章面向对象程序设计课件.ppt_第1页
第5章面向对象程序设计课件.ppt_第2页
第5章面向对象程序设计课件.ppt_第3页
第5章面向对象程序设计课件.ppt_第4页
第5章面向对象程序设计课件.ppt_第5页
资源描述:

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

1、面向对象程序设计Object-OrientedProgramming知识要点:1.函数模板的概念要求达到“领会”的层次。2.函数模板应用要求达到“简单应用”的层次。3.类模板的概念要求达到“领会”的层次。4.类模板应用要求达到“简单应用”的层次。第五章模板函数与模板类TemplateFunctionandTemplateClass5.1模板的概念模板是一种安全、高效的重用代码的方式,它被用于参数化类型,在创建对象或函数时所传递的类型参数可以改变其行为。模板提供了一种新机制,一个函数模板或类模板可用于生成许多函数或类。在对事物进行抽象描述的时候,常

2、常会遇到这样的情况,许多类和函数完成相似或相同的功能,只是所操作的数据类型不同。5.1模板的概念例如,求两个数最小值的函数min:intmin(inta,intb){returna

3、同的数据,将会大大简化程序设计和编码工作。5.1模板的概念在程序设计中,一个程序实体的这种能对应多种类型的数据进行操作或描述的特性称为泛型。类型成为类似函数中的形参一样的未知量,而在程序运行时,提供实际的类型。C++中提供了模板特性来支持泛型程序设计。所谓模板------实现代码重用机制的一种工具,它可以实现类型参数化,即把类型定义为参数,从而实现真正的代码可重用性。5.1模板的概念C++是一种“强制型”的语言,也就是说一个变量,编译器必须确切地知道它的类型,而模板就是构建在这个强类型语言基础上的泛型系统。由模板可以得到一系列的相似类或相似函数,

4、这些相似类和相似函数涉及的数据其类型可能不同但处理数据却具有相同的表现形态。C++模板包括函数模板和类模板。5.2函数模板5.2.1函数模板的定义对于不同的数据类型,需要提供一种逻辑功能完全一样的函数,即编制这些函数的程序代码完全一样,其区别仅仅是处理的数据类型。针对不同的数据类型,需要重载函数:例如:求两数的最大值,不同的数值类型,程序逻辑相同,程序代码相同,只是参数类型和返回值不同。有一种更方便、更可靠的方法来完成这一功能。函数模板就是为了适应这一要求而产生的。函数模板就是一系列相关函数定义的模型或样板,这些函数的原代码除了所针对的数据类型不

5、同而有所差异外,其基本结构形式相同。函数模板-------数据类型本身成了它的参数,因而是一种参数化类型的函数。5.2函数模板5.2.2函数模板的使用与实例化所有的函数模板都具有同样的基本格式:template或template//模板声明返回类型函数名(参数表){//函数体的定义}template关键字和尖括号中的classT一起作为模板的构造每一个类型参数(上面语法形式中的T)之前都有关键字class或关键字typename,这些类型参数代表的是类型,可以是内部类型或是自定义类型。类型参数就可以用来指定函

6、数模板本身的形参类型和返回值类型,以及声明函数中的局部变量。函数模板中函数的定义方式与定义其他函数类型类似。5.2函数模板函数头、函数体中的T在使用时将被指定的类型标识符替代。模板中的每个参数在函数参数表中必须至少使用一次。下面的声明是不允许的:templatevoidf(T1param){//...函数体}这个函数模板声明了两个参数T1和T2,但是函数本身却只使用了T1来定义param。正确的声明应该是在函数参数表中至少使用T1和T2各一次:templatevoidf(T1pa

7、ram1,T2param2){//...函数体}错误用法正确5.2函数模板通常,将模板放在头文件中声明,以便不同的程序文件可以共享。编译系统将依据每一次调用的实在参数的情况生成适当的调用代码,并生成相应版本的函数定义,根椐函数模板生成函数定义的过程称为函数模板的实例化(Instantiation)。编译器一般不支持将函数模板的声明与函数模板的函数体部分分别存放,生成独立的函数库文件,然后使用。【例5.1】模板声明头文件5.2函数模板【例5.1】模板声明头文件。//程序名ch5_1.h#ifndefMINMAX_H#defineMINMAX_H//

8、避免重复包含本文件templateTmax(Tx,Ty){return(x>y)?x:y;}template

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

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

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