c++ template全览

c++ template全览

ID:14404098

大小:1.70 MB

页数:272页

时间:2018-07-28

c++ template全览_第1页
c++ template全览_第2页
c++ template全览_第3页
c++ template全览_第4页
c++ template全览_第5页
资源描述:

《c++ template全览》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、C++Template全览C++Templates-TheCompleteGuide1说明本书是在侯捷等翻译的繁体中文版基础上,用软件将PDF文件转换成word文件,然后将繁体转换成简体,再将一些台湾的术语改成了大陆的术语,并经过简单排版后的结果。对各位初学C++Template的朋友应该有所帮助。丁志强zqding@hotmail.com2关于本书AboutThisBook作为C++的一部分,尽管templates(模板)已经存在二十多年(并且以其它多种面目存在了几乎同样长的时间),但它还是会招引误解、误用和争议。在此同时,愈来愈多人觉察templates是产生更干净、更快速、更精明

2、的软件的一个强而有力的手段。确实,templates已经成为数种新兴C++编程思维模型(programmingparadigms)的基石。但是我们发现,大多数现有书籍和文章对于C++templates的理论和应用方面的论述,显得过于浅薄。有些书籍虽然很好地评述了各种template-based技法,却并没有精确阐述C++语言本身如何使这些技法得以施行。于是,无论新手或专家,都好像在和templates较劲,费尽心思去琢磨为何他们的程序代码不能按想象的方式执行。这样的观察结果,正是我们两人写这本书的主要动机之一。对于本书,我俩心中各有独立的要旨和不同的写作方式:David的目标是为读者提

3、供一份完整的参考手册,其中讲述C++template语言机制的细节,以及重要的templates高级编程技法。他比较关注内容的精确与完备。Nico希望为自己和其它日常生活中使用templates的程序员带来一本有帮助的书。这意味本书将以一种直观易懂、结合实践的方式呈现给读者。从某种意义上,你可以把我们看做是科学家和工程师的组合:我们按照相同的原则写作,但侧重点有些不同(当然,也有很多情况是重迭的)。Addison-Wesley把我俩的努力结合在一起,于是你拥有了一本我俩心目中两方面紧密结合的书籍:既是C++template教本(tutorial),也是C++template的详尽参考手

4、册(reference)。作为教本,本书不仅涵盖语言基本要素的介绍,也致力培养某种得以设计出切实可行之解决方案的直觉。作为参考手册,本书既包括C++template的语法和语意,也是各种广为人知和鲜为人知的编程惯用手法(idioms)和编程技术的全面总览。1.1阅读本书之前你应该知道的事要想具备学习本书的最佳状态,你应该先已了解C++。本书中我们只讲述某些语言特性的细节,并不涉及语言基础知识。你应该熟知类别(classes)、继承(inheritance)等概念,你应该能够利用C++标准库所提供的组件(例如iostreams和各种容器,containers)编写C++程序。如有必要,我

5、们会回顾某些微妙问题—即使这些问题并不直接与templates相关。这可确保本书对于专家和中级水平的程序员皆适用。本书大部份以1998年的C++Standard([Standard98])为依据,同时兼顾C++标准委员会释出的第一份技术勘误([Standard02])中的说明。如果你觉得你的C++基础还不够好,我们推荐你阅读[StroustrupC++PL]、[JosuttisOOP]和[JosuttisLib]等书籍来充实知识。这些书非常好地讲述了最新的C++语言及其标准库。你可以在附录B.3.5找到更多参考数据。1.2本书组织结构我们的目标是为两个族群提供必要信息:(1)准备开始使

6、用templates并从中获益者,(2)富有经验并希望紧追最新技术者。基于此种想法,我们决定将本书组织为以下四篇:第一篇介绍templates涉及的基本概念。这部份采用循序渐进的教本(tutorial)方式。第二篇展现语言细节,对template相关构件(constructs)来说是一份便利的参考手册。第三篇讲述C++templates的基础设计技术,从近乎微不足道的构想到精巧复杂的编程技法都有。某些内容在其它出版物中甚至从未被提到。第四篇在前两篇的基础上讨论templates的各种普遍应用。每一篇都包含数章。此外我们还提供多份附录,涵盖内容不限于templates,例如附录B的「C+

7、+重载解析机制(overloadresolution)」综览。第一篇各章应该循序阅读,例如第3章内容就是是建立在第2章内容之上。其它三篇各章之间3的联系较松。例如你可以阅读functors那一章(第22章),不必先阅读smartpointers那一章(第20章)。最后,我们提供了一份相当完备的索引,便利读者以自己的方式,跳脱任何顺序来阅读本书。1.3如何阅读本书如果你是一位C++程序员,打算学习或巩固templates概念,请仔细阅读第一篇(基

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。