没有合适的资源?快使用搜索试试~ 我知道了~
C++程序设计与实践:11-模板和泛型编程.ppt
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 183 浏览量
2022-06-12
23:21:13
上传
评论
收藏 1.41MB PPT 举报
温馨提示
试读
51页
C++程序设计与实践:11-模板和泛型编程.ppt
资源推荐
资源详情
资源评论
C++
C++
程序设计与实践
程序设计与实践
第十章 模板和泛型编程
本章要点
•
模板的概念。 的泛型机制用模板实现。
•
函数模板和模板函数。一个函数模板是一类函数的抽
象,由函数模板产生的函数称为模板函数,是函数模板
的实例。
•
类模板和模板类。一个类模板是多个只是数据类型不
同的同种类的抽象,模板类是类模板的实例。
•
容器类和迭代器。容器类是一类用于存储对象的机制,
都是用模板实现的。而迭代器是一种类,用于封装迭代
操作,使其与类型无关。
•
泛型算法。泛型算法是用模板实现的一类通用操作,
其操作与类型无关。
C++
C++
程序设计与实践
程序设计与实践
问题引入
有的时候,我们不得不编写一系列非常相似
的函数来处理不同类型的数据。例如,考虑
这样一个问题:编写全局函数来比较两个数
的大小。
整型版本
整型版本
Greater
Greater
浮点版本
浮点版本
Greater
Greater
类版本
类版本
bool operator>(const Quadrangle& a, const Quadrangle&
bool operator>(const Quadrangle& a, const Quadrangle&
b)
b)
{ return a.area () > b.area (); }
{ return a.area () > b.area (); }
bool
bool
Greater
Greater
(const Quadrangle & a, const Quadrangle & b)
(const Quadrangle & a, const Quadrangle & b)
{ return a > b; }
{ return a > b; }
C++
C++
程序设计与实践
程序设计与实践
函数重载的使用
!
"#$$% $$&'
(
)
)**
)
)
)
)
)+#
+#
C++
C++
程序设计与实践
程序设计与实践
类型做参数
问题:
这些函数除了参数类型不同外(参数的名字
完全可以不予考虑),其余部分完全相同。
提问:你会用什么方法来编辑这些源代码?
这带来了一个问题:当函数的主体设计发生
了改变,那么这些函数都必须全部根据这个
设计而改变。这无疑对代码的维护造成了困
难。
是否可以设计出这样一种函数框
是否可以设计出这样一种函数框
架,但将
架,但将
类型
类型
本身
本身
作为参数
作为参数
传递
传递
呢?如果能这样,就能用一个版
呢?如果能这样,就能用一个版
本的代码去适应所有的类型。
本的代码去适应所有的类型。
C++
C++
程序设计与实践
程序设计与实践
类的设计考虑
除了函数,类的设计也可能面临类型的问题。
例如我们设计的类 , 。 , 是一个用链表
实现的存储类,而这种类往往被称为“容器
”
剩余50页未读,继续阅读
资源评论
wxg520cxl
- 粉丝: 24
- 资源: 3万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功