- 1、本文档共48页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
整合应用
整合应用
C++模板编程与面向对象编程范型
C++模板编程与面向对象编程范型
——混搭编程风格
——混搭编程风格
荣耀
2009年12月上海
中国第二届C++技术大会
动机
动机
将模板编程的编译期评估优势与面向对
象的继承与复用机制相结合,获得更优
雅、灵活、高效的代码。
议题
议题
模板编程与面向对象编程的基本特征
整合应用的语言基础
整合应用的典型场景
相关话题讨论
术语约定
术语约定
模板编程
模板编程,泛型编程,模板元编程
模板编程,
面向对象编程
基于对象编程,面向对象编程
面向对象编程
模板
类模板vs. 模板类,函数模板vs. 模板函数
模板的特化/特化体(specialization)=模板的实例(即普通类或
普通函数)
模板的特化(行为)(specialization)=类模板的完全特化、局
部特化,函数模板的完全特化
模式
C++编程惯用法,设计模式
聚合/组合/复合/包含
议题 Ⅰ基本特征
议题 Ⅰ基本特征
模板编程
能力与特点
优势与弱项
面向对象编程
能力与特点
优势与弱项
共同点
模板编程——能力与特点
模板编程——能力与特点
类型参数化
函数模板—— 函数生成器
比函数重载节省工作量,且可以对付未知的类型
可以重载或完全特化函数模板
类模板——类生成器
通过局部特化或完全特化实现针对特定类型的逻辑
或通过继承机制实现所需的逻辑
模板实例化发生于编译期/链接期
模板是编译器提供的一种代码复用方式
模板是编译器提供的一种代码复用方式
参数类型离散化,程序代码扁平化
参数类型离散化,程序代码扁平化
模板编程——优势与弱项
模板编程——优势与弱项
优势
效率
通用性
松耦合
适配性
静态多态
模板编程——优势与弱项
模板编程——优势与弱项
弱项
语法复杂
调试困难
编译耗时
代码膨胀
编译器支持的兼容性问题
面向对象编程——能力与特点
面向对象编程——能力与特点
程序操纵的基本单元
类
类的实例——对象
三大特点:封装、继承和多态
因为封装,所以隐藏
因为继承(和虚函数),所以多态
因为多态,所以可扩展、自适应
程序代码层次化
程序代码层次化
面向对象编程——优势与弱项
面向对象编程——优势与弱项
优势
符合程序员对客观世界的直觉认识
实现与使用有效分离
可复用性
动态多态
面向对象编程——优势与弱项
面向对象编程——优势与弱项
弱项
效率
动态绑定导致运行时开销
动态绑定导致编译器无法执行某些优化
可能导致紧密耦合的、笨重的类层次结构
修改基类的影响
修改派生类的影响
共同之处
共同之处
抽象工具
函数模板、类模板、类、类层次结构
接口与实现相分离
模板编程
模板定义接口,类型参数定义实现
面向对象编程
基类定义接口,派生类定义实现
多态性
文档评论(0)