1 / 35
文档名称:

高级语言程序设计PPT教学课件-第10章_模板.ppt

格式:ppt   页数:35
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

高级语言程序设计PPT教学课件-第10章_模板.ppt

上传人:3346389411 2013/4/4 文件大小:0 KB

下载得到文件列表

高级语言程序设计PPT教学课件-第10章_模板.ppt

文档介绍

文档介绍:

函数模板说明
使用函数模板
用户定义的参数类型

类模板说明
使用类模板

第10章模版
华北电力大学计算机系
问题引入:
int abs(int x)
{
if(x<0)
return –x;
else
return x;
}
float abs(float x)
{
if(x<0)
return –x;
else
return x;
}
T abs(T x)
{
if(x<0)
return –x;
else
return x;
}
很多情况下,设计的算法可处理多种数据类型
通用代码
华北电力大学计算机系
函数模板
函数模板可定义一个对任何类型变量操作的通用函数
普通函数vs函数摸板
普通函数只能传递变量参数
函数模板提供了传递类型的机制
步骤
定义函数模板
实例化成相应的模板函数进行调用执行
函数模板说明
使用函数模板
用户定义的参数类型
华北电力大学计算机系
函数模板说明
template <类型形参表>
<返回类型><函数名>(形参表)
{
//函数定义体
}
template <class T>
T abs( T x )
{
if(x < 0)
return –x;
return x;
}这样的函数模板定义不是一个实实在在的函数,编译系统不为其产生任何执行代码
即模板参数表
class 标志符可以是基本数据类型,也可以是自定义类型。
一个或多个模板参数,每个都要写class,逗号分隔。
<函数定义体>中至少出现一次
函数体同一般函数定义一样
华北电力大学计算机系
使用函数模板
,不能直接执行,
需要实例化为模板函数后才能执行。
template <class T>
T abs( T x )
{
if(x < 0) return –x;
return x;
}
:abs(10);
,所以实例化为以下真正的函数:
int abs(int x)
{
if(x < 0) return -x;
return x;
}
(10);
华北电力大学计算机系
函数模板定义:
(T:形参,
通用数据类型)
template <class T>
T abs(T x)
{
if(x < 0) return –x;
return x;
}
生成模板函数:
(int类型是函数模板的参数T的实参,也是函数调用时的形参的类型)
int abs(int x)
{
if(x < 0) return -x;
return x;
}
模板函数调用:
abs(10);//10为模板函数的实参
华北电力大学计算机系
【】
#include <>
template <class T>
T min(T x,T y)
{
if(x<y) return x;
else return y;
}
void main()
{
int n1=2, n2=10;
double d1=, d2=;
cout << "较小整数:" << min(n1,n2) << endl;
cout << "较小实数:" << min(d1,d2) << endl;
}
实例化min模板函数来比较两个双精度数
实例化min模板函数来比较两个整数
本程序的执行结果如下:
较小整数:2
较小实数:
华北电力大学计算机系
函数模板的实例化
函数模板
T min(T x,T y)
生成模板函数
int min(int n1,int n2)
模板函数
double min(double d1,double d2)
实例化
实例化-当编译器发现有函数调用:
<函数名>(<实参表>);
根据<实参表>中的类型,生成一个模板函数
(函数模板的实例)
模板函数调用
min(2,10)
函数模板——模板的定义,通用的类型参数
模板函数——实实在在的一个函数定义
是由编译系统遇到具体函数调用时生成的
定义体与函数模板的函数定义体
华北电力大学计算机系
注意
函数模板的说明和定义必须是全局作用域。
模板不能被说明为类的成员函数。
函数模板有一个特点,虽然模板参数T可以实例化成各种类型,但是采用模板参数T的各参数之间必须保持完全一致的类型。
华北电力大学计算

最近更新

2024年绥中县招教考试备考题库含答案解析(夺.. 30页

2024年自贡职业技术学院马克思主义基本原理概.. 13页

2024年苏州城市学院马克思主义基本原理概论期.. 12页

2024年荆州职业技术学院马克思主义基本原理概.. 12页

2024年营山县幼儿园教师招教考试备考题库含答.. 30页

2024年藤县招教考试备考题库及答案解析(必刷.. 31页

2024年襄垣县招教考试备考题库含答案解析(夺.. 30页

2024年西南财经大学马克思主义基本原理概论期.. 12页

2024年西安石油大学马克思主义基本原理概论期.. 13页

2024年许昌县幼儿园教师招教考试备考题库及答.. 30页

2024年贵州商学院马克思主义基本原理概论期末.. 13页

2024年贵州铝厂职工大学马克思主义基本原理概.. 12页

2024年赣州职业技术学院马克思主义基本原理概.. 12页

2024年辽宁冶金职工大学马克思主义基本原理概.. 12页

2024年辽宁金融职业学院马克思主义基本原理概.. 12页

2024年邵阳通航职业技术学院马克思主义基本原.. 13页

2024年郑州美术学院马克思主义基本原理概论期.. 13页

2024年重庆工信职业学院马克思主义基本原理概.. 12页

2024年重庆航天职业技术学院马克思主义基本原.. 12页

2024年钟山职业技术学院马克思主义基本原理概.. 12页

2024年镇宁布依族苗族自治县招教考试备考题库.. 30页

2024年长春信息技术职业学院马克思主义基本原.. 12页

2024年长沙卫生职业学院马克思主义基本原理概.. 13页

2024年门源县幼儿园教师招教考试备考题库附答.. 30页

2024年阳信县招教考试备考题库及答案解析(夺.. 31页

2024年阿瓦提县招教考试备考题库含答案解析(.. 30页

2024年陕西科技大学镐京学院马克思主义基本原.. 13页

2024年雄县招教考试备考题库含答案解析(必刷.. 30页

2024年青岛电影学院马克思主义基本原理概论期.. 12页

2024年靖州苗族侗族县幼儿园教师招教考试备考.. 31页