下载此文档

第7章 模板.ppt


文档分类:办公文档 | 页数:约53页 举报非法文档有奖
1/53
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/53 下载此文档
文档列表 文档介绍
第7章模板
模板的概念
函数模板
类模板
标准模板库STL*
应用实例*
模板的概念
类型的严格性与灵活性
解决冲突的途径
模板的概念
类型的严格性与灵活性
在函数重载中,参与运算的所有对象的类型在编译时即可确定下来,并且编译程序将进行严格的类型检查。
函数重载提高了程序的可靠性,但也带来了一些负作用,例如:
类型的严格性与灵活性
以下两个函数
int max(int a,int b)
{ return a>b? a:b; }

float max(float a,float b)
{ return a>b? a:b; }
函数重载迫使程序员为逻辑结构相同而具体数据类型不同的对象编写模式—致的代码,而无法抽取其中的共性,不利于程序的扩充和维护。
类型的严格性与灵活性
int max(int a,int b)
{ return a>b? a:b; }
float max(float a,float b)
{ return a>b? a:b; }
解决类型的严格性与灵活性冲突最理想的方法是:
直接将数据类型作为类的参数,就好像函数可以将数据作为参数一样,这种机制称为类属。
解决冲突的途径
模板的概念
模板是一种参数化多态性的工具,可以为逻辑功能相同而类型不同的程序提供一种代码共享的机制。
在C++中,模板分为函数模板和类模板。
一个模板并非一个实实在在的函数或类,仅仅是一个函数或类的描述,模板运算对象的类型不是实际的数据类型,而是一种参数化的类型,即类属类型。
模板的概念
模板的类属参数由调用它的实际参数的具体数据类型替换,由编译器生成一段真正可以运行的代码。这个过程称为实例化。
通过参数实例化构造出的函数或类,称为模板函数和模板类,它们之间的关系如下图所示:
模板的概念
模板
(函数模板或类模板)
模板函数
模板类
对象
函数模板
函数模板的定义
函数模板的实例化
函数模板的重载

第7章 模板 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数53
  • 收藏数0 收藏
  • 顶次数0
  • 上传人mh900965
  • 文件大小443 KB
  • 时间2018-05-15
最近更新