- 1、本文档共87页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C第十章10-模板
第10章 模板
第10章 模板
模板把函数或类要处理的数据类型参数化,表现为参数的多态
性,称为类属。
模板用于表达逻辑结构相同,但具体数据元素类型不同的数据
对象的通用行为。
第10章 模板
第10章 模板
10.1 什么是模板
10.2 函数模板
10.3 类模板
小结
10.1 什么是模板
10.1 什么是模板
类属—— 类型参数化,又称参数模板
类属
使得程序(算法)可以从逻辑功能上抽象,把被处理的对象
(数据)类型作为参数传递
C++提供两种模板机制: 函数模板
类模板
10.1 什么是模板
10.1 什么是模板
模板
(函数模板和类模板)
模板函数 模板类
对象
模板、类、对象和函数
模板、类、对象和函数
10.2 函数模板
10.2 函数模板
考虑求两参数之中大值函数:max ( a , b )
对a , b 的不同类型,都有相同的处理形式:
return ( a b ) ? a : b ;
用已有方法解决对不同数据类型处理:
(1 )宏替换 # define max ( a , b ) ( a b ? a : b )
问题 避开类型检查
(2 )重载
问题 需要许多重载版本
(3 )使用函数模板
10.2 函数模板
10.2 函数模板
重载函数通常基于不同的数据类型实现类似的操作
对不同数据类型的操作完全相同,用函数模板实现更为简洁方便
10.2.1 模板说明
声明模板中使用的类属参数。形式为
template 类型形式参数表
10.2.1 模板说明
声明模板中使用的类属参数。形式为
template 类型形式参数表
关键字
10.2.1 模板说明
声明模板中使用的类属参数。形式为
template 类型形式参数表
类型形式参数的形式为:
typename T , typename T , …… , typename T
1 2 n
或 class T , class T , …… , class T
1 2 n
10.2.1 模板说明
声明模板中使用的类属参数。形式为
template 类型形式参数表
关键字
类型形式参数的形式为:
typename T , typename T , …… , typen
文档评论(0)