《面向对象程序设计》课程教学资源(课件讲稿)第20章 模板(PPT)

模板第20章
第20章 模板

目录20.1模板的概念20.2为什么要用模板20.3函数模板20.4重载模板函数20.5类模板的定义20.6使用类模板20.7使用标准模板类库
20.1 模板的概念 20.2 为什么要用模板 20.3 函数模板 20.4 重载模板函数 20.5 类模板的定义 20.6 使用类模板 20.7 使用标准模板类库

模板第20章模板是C++语言相对较新的一个重要特征模板使程序员能够快速建立具有类型安全的类库集合和函数集合。,它的实现方便了更大规模的软件开发。模板是C++支持参数化多态的工具使用模板可以使用户为类或者函数声明一种一般模式
• 模板是C++语言相对较新的一个重要特征。 • 模板使程序员能够快速建立具有类型安全的 类库集合和函数集合。 • 它的实现方便了更大规模的软件开发。 • 模板是C++支持参数化多态的工具。 • 使用模板可以使用户为类或者函数声明一种 一般模式

20.1模板的概念在程序设计中,可能会存在两种情况1、两个或多个函数的程序结构相同,但是它们的参数类型或函数返回类型不同:2、两个或多个程序结构相同,但是部分成员的类型或成员函数的类型及参数的类型不同这两种情况中,都是程序框架都基本相同,只是具体实现细节不同
在程序设计中,可能会存在两种情况: • 1、两个或多个函数的程序结构相同,但是它 们的参数类型或函数返回类型不同; • 2、两个或多个程序结构相同,但是部分成员 的类型或成员函数的类型及参数的类型不同。 这两种情况中,都是程序框架都基本相同,只 是具体实现细节不同

20.1模板的概念C++提供了模板机制,利用模板可以简化程序代码,实现软件复用。,若一个程序的功能是对某种特定的数据类型进行处理,则若将所处理的数据类型说明为参数,就可以把程序改写成模板模板可以让程序对任何其他数据类型进行同样方式的处理
• C++提供了模板机制,利用模板可以简化程 序代码,实现软件复用。 • 若一个程序的功能是对某种特定的数据类型 进行处理,则若将所处理的数据类型说明为 参数,就可以把程序改写成模板。 • 模板可以让程序对任何其他数据类型进行同 样方式的处理

20.1模板的概念C++程序由类和函数组成C++的模板也分为:函数模板和类模板函数模板是一种抽象通用的函数,用它可生成一批具体的函数。这些由函数模板经实例化生成的具体函数称为模板函数
• C++程序由类和函数组成。 • C++的模板也分为:函数模板和类模板。 • 函数模板 ✓ 是一种抽象通用的函数,用它可生成一批具 体的函数。 ✓ 这些由函数模板经实例化生成的具体函数称 为模板函数

20.1模板的概念类模板是一种抽象通用的类,用它可生成一批具体的类。这些由类模板经实例化生成的具体类称为模板类。·因此,可以使用一个带多种不同数据类型的函数和类。而不必显示记忆针对不同的数据类型的各种具体版本
• 类模板 ✓ 是一种抽象通用的类,用它可生成一批具体 的类。 ✓ 这些由类模板经实例化生成的具体类称为模 板类。 • 因此,可以使用一个带多种不同数据类型的 函数和类。 • 而不必显示记忆针对不同的数据类型的各种 具体版本

20.2为什么要用模板1、关于函数考察两个swap()函数。一个交换两个整型数,另一个交换两个浮点数。:两个swap()的主体行为是一样的。。一个处理int型,另一个处理float型
1、关于函数 • 考察两个swap( )函数。 • 一个交换两个整型数,另一个交换两个浮点 数。 • 两个swap( )的主体行为是一样的。 • 一个处理int型,另一个处理float型

20.2为什么要用模板void swap(int & a,int& b){int temp= a;a=b;b =temp;函数体行为一样。但是处理的数void swap(float & a,float & b)据类型不同。{float temp = a ;a=b;b =temp ;
void swap( int & a , int & b ) { int temp = a ; a = b ; b = temp ; } void swap( float & a , float & b ) { float temp = a ; a = b ; b = temp ; } 函数体行为一 样。 但是处理的数 据类型不同

20.2为什么要用模板Ⅱ交换任何一对类类型对象,可以定义如下:void swap(T& a,T & b){T temp=a;a=b;b =temp;这样对任一类型T的两个对象x1和x2函数调用swap(x1,x2)总能使编译系统理解其交换意义。,否则,没交换一对新类型的对象,都要定义一个执行同样操作的重载函数。,有了函数模板后,重载就不必要了
//交换任何一对类类型对象,可以定义如下: void swap( T & a , T & b ) { T temp = a ; a = b ; b = temp ; } • 这样对任一类型T的两个对象x1和x2。 • 函数调用swap( x1 , x2 )总能使编译系统理解其交换意 义。 • 否则,没交换一对新类型的对象,都要定义一个执 行同样操作的重载函数。 • 有了函数模板后,重载就不必要了
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《面向对象程序设计》课程教学资源(课件讲稿)第19章 IO流(PPT).ppt
- 《面向对象程序设计》课程教学资源(课件讲稿)第18章 运算符重载(PPT).ppt
- 《面向对象程序设计》课程教学资源(课件讲稿)第17章 多态(PPT).ppt
- 《面向对象程序设计》课程教学资源(课件讲稿)第16章 继承(PPT).ppt
- 《面向对象程序设计》课程教学资源(课件讲稿)第15章 静态成员函数与友元(PPT).ppt
- 《面向对象程序设计》课程教学资源(课件讲稿)第14章 堆与拷贝构造函数(PPT).ppt
- 《面向对象程序设计》课程教学资源(课件讲稿)第13章 面向对象程序设计(PPT).ppt
- 《面向对象程序设计》课程教学资源(课件讲稿)第12章 构造函数(PPT).ppt
- 《C语言》课程资源_智慧树使用手册_学生端使用手册.ppt
- 《C语言》课程教学课件(PPT讲稿)第25次课(函数定义、调用、参数传递、返回值).ppt
- 《C语言》课程教学课件(PPT讲稿)第27次课(函数进一步讨论).ppt
- 《C语言》课程教学课件(PPT讲稿)第29次课 结构体.ppt
- 《C语言》课程教学课件(PPT讲稿)第31次课(编译预处理命令 位运算 文件).ppt
- 《C语言》课程教学资源(教程讲义)C语言程序设计新思路(1-3章).pdf
- 《C语言》课程教学课件(PPT讲稿,教程)第1章 引论.ppt
- 《C语言》课程教学课件(PPT讲稿,教程)第2章 基本的数据与运算.ppt
- 《C语言》课程教学课件(PPT讲稿,教程)第5章 循环结构程序设计.ppt
- 《C语言》课程教学课件(PPT讲稿,教程)第6章 数组.ppt
- 《C语言》课程教学课件(PPT讲稿,教程)第9章 函数.ppt
- 《C语言》课程教学课件(PPT讲稿,教程)第10章 函数的进一步讨论.ppt
- 《面向对象程序设计》课程教学资源(课件讲稿)第21章 异常处理(PPT).ppt
- 《面向对象程序设计》课程教学资源(课件讲稿)第10章 结构(PPT).ppt
- 《面向对象程序设计》课程教学资源(课件讲稿)第11章 类(PPT).ppt
- 《面向对象程序设计》课程教学资源(PPT课件)第12章 多态性.ppt
- 《面向对象程序设计》课程教学资源(PPT课件)第13章 模板与异常处理.ppt
- 《面向对象程序设计》课程教学资源(PPT课件)第14章 标准库和输入输出流.ppt
- 《面向对象程序设计》课程教学资源(PPT课件)第15章 链表.ppt
- 《面向对象程序设计》课程教学资源(PPT课件)第9章 类和对象(一).ppt
- 《面向对象程序设计》课程教学资源(PPT课件)第10章 类和对象(二).ppt
- 《面向对象程序设计》课程教学资源(PPT课件)第11章 继承和派生.ppt
- 山东理工大学:《面向对象程序设计》课程实验指导书(C++).pdf
- 山东理工大学:《计算机绘图AutoCAD》课程教学资源(PPT课件)第4章 AutoCAD尺寸标注.pdf
- 山东理工大学:《计算机绘图AutoCAD》课程教学资源(PPT课件)第5章 AutoCAD绘制机械图样表达.pdf
- 山东理工大学:《计算机绘图AutoCAD》课程教学资源(PPT课件)第6章 AutoCAD绘制机械工程图.ppt
- 山东理工大学:《计算机绘图AutoCAD》课程教学资源(PPT课件)第1章 AutoCAD设计基础.ppt
- 山东理工大学:《计算机绘图AutoCAD》课程教学资源(PPT课件)第2章 AutoCAD绘图平面图形.ppt
- 山东理工大学:《计算机绘图AutoCAD》课程教学资源(PPT课件)第3章 AutoCAD绘制形体视图.pdf
- 清华大学出版社:《计算机绘图AutoCAD》课程教学课件(PPT讲稿)第6章 AutoCAD绘制机械工程图.ppt
- 清华大学出版社:《计算机绘图AutoCAD》课程教学课件(PPT讲稿)第7章 实训.ppt
- 清华大学出版社:《计算机绘图AutoCAD》课程教学课件(PPT讲稿)第1章 AutoCAD设计基础.ppt
