设为首页 加入收藏

TOP

深入实践C++模板编程 前言
2013-10-07 16:29:45 来源: 作者: 【 】 浏览:161
Tags:深入 实践 模板 编程 前言

前言

为什么要写这本书

笔者在工作中最常用的编程(www.cppentry.com)语言就是C++(www.cppentry.com)。在最初接触C++(www.cppentry.com)语言的时候,只当它是C语言与面向对象编程(www.cppentry.com)的组合,在写代码时也是积极实践“万物皆对象”的法则,不管什么操作,总要将其在某个对象的某个成员函数中实现才满意。但在长年的编程(www.cppentry.com)实践过程中,却常常对面向对象的设计方法产生怀疑。

面向对象的设计思想,是将与某个数据类型相关的操作与该数据类型捆绑在一起,构成一个整体。然而,有时候操作并不完全依赖于数据类型。同一种算法,可能适用于不同的数据类型。如果硬要遵循“万物皆对象”的法则,那么只能将其在各个具体数据类型中重复实现,或是设计一个抽象的类型专门容纳算法。无论怎样,总显得有些“削足适履”。

而在实践中最苦恼的事情是,虽然算法固定,但是只因数据结构不同,每当引入新数据时,只得将算法重写一遍,徒费人工。高手看到此,自然就会想到将算法写成模板。也正因有此困扰,笔者才开始正视C++(www.cppentry.com)语言中的“模板编程(www.cppentry.com)”,一旦走入这套精密强力却又不广为人知的机制,方知此处别有洞天。

几番研究与实践下来,笔者尚不敢称对C++(www.cppentry.com)的模板编程(www.cppentry.com)掌握几分,却早已叹于其对笔者编程(www.cppentry.com)思路革新起到巨大的帮助。从“万物皆对象”,到如今渐渐变为关注设计容器及抽象算法,这是拜模板所赐。赞叹之余,不禁想尝试写一本书介绍C++(www.cppentry.com)中的模板编程(www.cppentry.com),于人分享心得,于己则巩固琢磨。不论章节条理,只求娓娓道来。如能对读者略有裨益,便是幸甚。

读者对象

《深入实践C++(www.cppentry.com)模板编程(www.cppentry.com)》假定读者对C++(www.cppentry.com)的语法有基本了解,要求仅此而已。笔者尽力将C++(www.cppentry.com)语言中这一部分非常有趣的内容,用详尽的示例以及平实的语言展现在读者面前。即使是刚刚踏入C++(www.cppentry.com)队伍的新兵,相信也能跟随本书的进度,渐渐领略这一片C++(www.cppentry.com)秘境。而对于久经沙场的老兵,笔者限于自身阅历有限,不敢夸口定能有所提高,唯有以诚意将所思所得写下,请诸位老兵“择其善者从之,其不善者改之”。

《深入实践C++(www.cppentry.com)模板编程(www.cppentry.com)》面向了解C++(www.cppentry.com)基本语法并有C++(www.cppentry.com)编程(www.cppentry.com)经历的读者。对C++(www.cppentry.com)模板编程(www.cppentry.com)技术、标准模板库用法和原理感兴趣的读者,可以将本书作为一本入门与提高的书使用。对于经常开发中小型C++(www.cppentry.com)代码库的读者,本书中有关模板高级编程(www.cppentry.com)技巧的内容可为您提供有益的补充。另外,本书中有关C++(www.cppentry.com)11新标准与模板技术的内容,也可作为对新标准的概要介绍供您参考。

如何阅读本书

《深入实践C++(www.cppentry.com)模板编程(www.cppentry.com)》的内容分为四个部分。

模板基础(第1~4章)介绍模板编程(www.cppentry.com)的基本概念与用法,并着重讨论编译器对模板的具体实现方法及其局限。学习完本部分之后,读者可以理解模板的基本原理并自行实现简单的类模板与函数模板。

标准库中的模板(第5~9章)介绍标准库中的算法与容器,并对其实现细节进行仔细推敲。算法与容器可以说是C++(www.cppentry.com)模板编程(www.cppentry.com)的最典型用法。C++(www.cppentry.com)程序员可以不知道模板编程(www.cppentry.com)技术,但不可能不用到由模板写成的标准算法与容器。了解其实现原理的重要意义不言而喻。学习完本部分,读者将能洞悉标准库容器的实现原理,对标准库中的算法、迭代器与容器之间的关系有深入的理解,从而可以精确调节标准容器的行为以及自行开发适用于标准算法的容器类模板等。

模板编程(www.cppentry.com)高级技巧(第10~13章)讨论模板编程(www.cppentry.com)中“概念”的设计、控制代码量的技术、编译期逻辑的控制以及元编程(www.cppentry.com)的基本方法等。学习完本部分,读者可以开发规模更大、更加智能的模板库,并利用元编程(www.cppentry.com)技术实现编译期的逻辑演绎与类型推导。

模板与C++(www.cppentry.com)11(第14~16章)介绍新标准C++(www.cppentry.com)11中的重要改进及其对模板编程(www.cppentry.com)的影响。在学习完本部分之后,读者将能够准确把握C++(www.cppentry.com)11的几大重要革新的用意和用法,为利用新一代标准进行软件开发打下坚实基础。

勘误和支持

除封面署名外,本书编写工作的还有:陈凯、石少华、刘宏业、林文雯、王春、张敏、付强。由于笔者学识与经历有限,书中内容难免有偏颇及谬误之处。笔者将秉持谦虚的态度和开放的胸襟,认真对待各位读者的批评与指教。书中的全部源文件可以从华章网站下载,如您对本书内容有任何意见和建议,或者有关C++(www.cppentry.com)和程序设计的任何话题,欢迎发送邮件至yjwen.ty@qq.com和通过新浪微博@宇杰W与笔者交流。

致谢

感谢我的好友张哲君。作为本书草稿的第一位读者,你的意见与鼓励是我写作本书的动力之源。

感谢机械工业出版社华章公司的各位同仁为本书的出版付出的辛勤劳动。特别要感谢杨福川编辑和白宇编辑,本书从草稿到成书的过程,离不开你们的精心指导与耐心审校。

最深深的谢意送给我的母亲和我的妻子。没有你们在我身边一直默默地支持和付出,不会有提笔写作的我,也不会有本书存在。

最美好的祝愿送给我即将出生的孩子们。愿你们快乐成长,并拥有淡定从容的人生。

最后,借此机会,向C++(www.cppentry.com)语言的发明者BjarneStroustrup教授、标准模板库的主要作者Alexander Stepanov和Meng Lee致以崇高的敬意。

温宇杰

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇深入实践C++模板编程 目录(2) 下一篇1.1 为什么需要模板

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: