《C++ Templates中文版》——1.2 本书的整体结构

1.2 本书的整体结构

我们的目的有两方面:一方面是为了给那些刚刚开始使用模板的程序员提供必要的信息,让他们可以从使用模板中受益;另一方面是为那些经验丰富的程序员介绍一些深入的知识,使他们可以走在模板应用的前列。为了实现这个目的,我们将整本书组织如下:

第1部分介绍了模板的基本概念,以教程的风格来介绍这些基本概念。
第2部分阐述了模板的语言细节,可以作为基于模板的构造的参考。
第3部分介绍了C++模板所支持的基本设计技术,覆盖的范围从微小的概念到复杂的用法;一些技术在别的书籍中都没有出现过。
第4部分在前两部分的基础上,深入讨论了各种使用模板的普通应用程序。
每个部分都由几个章节组成。另外,我们还提供了一些附录,它们涉及的范围并不局限于模板(例如,对C++重载解析的概述)。

对第1部分的每一章,你最好是按顺序阅读。例如,第3章就是建立在第2章(的内容)的基础之上的。然而,在其他的部分,章与章之间的关联是比较松散的。你可以随意安排阅读顺序,譬如先阅读关于仿函数的第22章,接下来才阅读关于智能指针的第20章。

时间: 2024-08-03 03:30:46

《C++ Templates中文版》——1.2 本书的整体结构的相关文章

《C++ Templates中文版》——第1章 关于本书

第1章 关于本书 C++ Templates中文版模板,作为C++中的一部分已经有了十几年之久(而且也以各种形式存在),但我们仍然会对它误解.误用甚至产生争论.同时,我们又发现模板可以作为一个工具,用来开发更加干净.更具效率.更加智能的软件.事实上,模板已经成为许多新的C++程序设计范例(paradigm)的基石. 然而,我们发现大部分关于C++模板的书籍和论文对模板理论和应用的介绍都是很肤浅的.即使是少数几本讨论各种模板设计技术的书籍,也未能准确地描述C++语言是如何支持这些模板技术的.于是,

《C++ Templates中文版》导读

译者序 C++ Templates中文版C++真可谓是包罗万象.博大精深.每个在C++中沉迷多年的爱好者都难免有这样的感慨:使用C++多年过后,我们往往只能算是一个熟练的使用者,却从来不敢给自己冠上"精通C++"的头衔.难道"精通C++"永远都是不惭的大言?然而,在学习.使用和研究C++的过程中,我们总是期望能够向"精通"不断迈进,并领悟C++语言的精髓.我想,要做到这一点起码要注意三个方面:一要把握语言发展的脉搏:二要多应用标准技术:三要洞悉标

《C++ Templates中文版》——第2章 函数模板

第2章 函数模板 C++ Templates中文版这一章介绍函数模板.函数模板是那些被参数化的函数,它们代表的是一个函数家族.

《C++ Templates中文版》——1.3 如何阅读本书

1.3 如何阅读本书 如果你是一个希望学习或者温习模板概念的C++程序员,那么你应该仔细阅读第1部分--基础.即使你已经对模板非常熟悉,我们还是建议你大概浏览一下第1部分,这样有助于你了解我们所使用的风格和术语.这一部分还介绍了:当遇到包含模板的源代码时,你应该如何(逻辑地)组织这些源代码. 根据自己的学习方法,你既可以深入理解第2部分的许多细节,也可以直接阅读第3部分所介绍的实用编码技术(然后才回到第2部分阅读一些复杂的语言话题).如果你每天面对使用模板的压力,那么后一种阅读方法通常是相当有用

《C++ Templates中文版》——1.1 阅读本书所需具备的知识

1.1 阅读本书所需具备的知识 为了能够理解本书中的大部分知识,你应该熟悉C++:我们描述的是该语言的一个特性(即模板),而不是语言本身的基础知识.你应该熟悉类和继承的概念,并且能够使用诸如IOstream和容器等C++标准库组件来编写程序.另外,在有必要的时候我们还会谈到语言的一些复杂话题,即使这些话题和模板并没有直接的关联.所有的这些说明了这本书主要适合于C++的专家和中级程序员. 我们所采用的语言是1998年标准化的C++语言(见[Standard98]),以及C++标准委员会在它的首份技

《C++ Templates中文版》——1.6 代码例子和更多信息

1.6 代码例子和更多信息 通过本书的网站,你可以获得本书的所有例子程序和相关信息,网站的地址是:http://www.josuttis.com/tmplbook. 另外,在David Vandevoorde的网站http://www.vandevoorde.com/templates和一些别的网站也可以找到该书的一些信息.在本书后面的参考书目中我们给出了另外的一些可供查询的信息.

《C++ Templates中文版》——2.1 初探函数模板

2.1 初探函数模板 函数模板提供了一种函数行为,该函数行为可以用多种不同的类型进行调用:也就是说,函数模板代表一个函数家族.它的表示(即外形)看起来和普通的函数很相似,唯一的区别就是有些函数元素是未确定的:这些元素将在使用时被参数化.为了阐明这些概念,让我们先来看一个简单的例子. 2.1.1 定义模板下面就是一个返回两个值中最大者的函数模板: //basics/max.hpp template <typename T> inline T const& max (T const&

《C++ Templates中文版》——1.5 标准和现实

1.5 标准和现实 C++标准自从1998年下半年以后就已经存在了.然而,直到2002年,才有了第一个完全符合标准的C++编译器.也就是说,大多数编译器对语言的支持仍然有所差异.有几个编译器可以编译本书的大部分代码,但一些(常用的)编译器并不能编译本书的很多代码.于是,针对这些编译器的(子标准)实现,我们经常提供了一些代替的技术,以获得一份完整(或者局部)的解决方案,但某些代替技术仍然不能为这些编译器所支持.总之,我们期望通过全世界的程序员要求编译器开发商支持标准,从很大程度上解决这个问题. 即

《C++ Templates中文版》——2.4 重载函数模板

2.4 重载函数模板 和普通函数一样,函数模板也可以被重载.就是说,相同的函数名称可以具有不同的函数定义:于是,当使用函数名称进行函数调用的时候,C++编译器必须决定究竟要调用哪个候选函数.即使在不考虑模板的情况下,做出该决定的规则也已经是相当复杂,但在这一节里,我们将讨论有关模板的重载问题.如果你对不含模板的重载的基本规则还不是很熟悉,那么请先阅读附录B,在那里我们对重载解析规则进行了很详细的叙述. 下面的简短程序叙述了如何重载一个函数模板: //basics/max2.cpp //求两个in