使用C++模板的优点和缺点
来源:互联网 发布:陈赫淘宝店叫什么 编辑:程序博客网 时间:2024/05/16 23:48
作为C++语言的新组成部分,模板引入了基于通用编程的概念。通用编程是一种无须考虑特定对象的描述和发展算法的方法,因此它与具体数据结构无关。但在决定使用C++模板之前,让我们分析一下使用模板的优缺点。
目的: 当被问及引入C++模板的目的时,C++的发明者Bjarne Stroustrup告诉我“这是为了支持类型安全、类容器的有效性和算法的通用性”。
优势和劣势: 使用模板有很多原因,最主要的为了得到通用编程的优点。国际标准化组织(ISO)为C++建立了C++标准库,该标准库功能强大,这证明了模板的重要性。库中涉及算法和容器的部分组成了标准模板库(简称STL)。由于模板的可重用性和可扩展性,你可以利用STL来实现效率很高的代码。
但是模板也有一些不太为人知的缺点。首先,由于C++没有二进制实时扩展性,所以模板不能像库那样被广泛使用。模板的数据类型只能在编译时才能被确定。因此,所有用基于模板算法的实现必须包含在整个设计的头文件中。通过分析标准模板库(STL)的头文件,你可以很清楚的认识到这一点。
另外,由于模板只是最近加入C++标准中,所以有些C++编译器还不支持模板,当使用这些编译器时编译含有模板的代码时就会发生不兼容问题。例如,Mozilla浏览器开发组之所以没有使用模板就是因为交叉平台会导致模板的不兼容。同样的,如果当开发者需要跨越好几个平台而有的平台可能只有老的C++编译器的时候,使用模板也是不明智的。
即使到现在,模板的一些高级特性,例如局部特殊化和特殊化顺序在不同的C++标准实现中也还是不统一的。
尽管如此,结合STL使用模板还是可以大大减少开发时间。模板可以把用同一个算法去适用于不同类型数据,在编译时确定具体的数据类型。
比方说,假设你希望实现一个诸如TCP/IP堆栈所用的开窗重排序机制。这个机制可用于IP数据报和其它数据报格式。通过使用模板后,开窗重排序机制就像流控制那样,无须随所处理数据格式而改变。
- 使用C++模板的优点和缺点
- 使用C++模板的优点和缺点
- 使用c++模板的优点和缺点
- c++模板的优点和缺点
- c++ 模板的优点和缺点
- C语言的优点、缺点和使用步骤
- 1.C语言的优点和缺点
- C语言的优点和缺点
- 使用感想:VS2005的优点和缺点
- 使用CSS框架的优点和缺点
- 优点使用的PHP和缺点
- 优点使用的PHP和缺点
- 使用AMP的优点和缺点
- 使用AMP的优点和缺点
- Object-c优点和缺点
- 模板建站的优点和缺点是什么
- 索引的优点和缺点
- 索引的优点和缺点
- 三星note 3即将上市,九月让我们眼花缭乱的手机你更偏向于哪一款
- firefly的环境搭建(2013年9月25日最新,win下最详图文)
- 黑马程序员——多线程
- SOJ 题目分类
- @result 注解详解 跳转不同的action
- 使用C++模板的优点和缺点
- Twisted 阐述
- 即时通讯软件架构
- Firefly框架参考
- iOS开发 粗解UIDynamicAnimator
- 程序员应对面试的好东西
- 转:模拟银行输入密码操作
- ANY比较符用法
- WINCE 下实现类TransparenBlt 的BMP 透明色显示功能