C++精粹
作者 : (美)Ira Pohl
译者 : 王树武 陈朔鹰
丛书名 : 计算机科学丛书
出版日期 : 2003-10-01
ISBN : 7-111-12746-3
定价 : 25.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 185
开本 : 16开
原书名 : C++ Distilled: A Concise ANSI/ISO Reference and Style Guide
原出版社:
属性分类: 教材
包含CD :
绝版 : 已绝版
图书简介

本书介绍了C++的程序结构、词法符号、常量、声明及作用域规则、文件链接规则、类型、类型转换、表达式及运算符、语句、函数、类、继承、模板、异常、输入/输出、STL、字符串库等方面的内容。特别是标准模板库(STL)、名字域、运行时类型识别(RTTI)以及BOOL数据类型,这些内容在大多数专业书籍中并没有详细论述。

  本书作者从20多年的实践经验出发,给出了许多有关程序设计技巧和编程风格的范例和建议。可以说,本书是一本深入C++编程精髓的向导和编程规范的指南。 本书可作为计算机专业技术人员的程序设计参考手册,也可作为高等院校师生深入学习C++的培训教材和参考书籍。

  这本书不仅仅是一本简明的参考指南或是对一个复杂课题的简单小结。Pohl博士在经过缜密思考之 后。加入了他对c++语言的使用及编程风格的独特建议,这些建议包含了对这门语言所做的更为深入的探
索。尤其在专业实践方面。各种层次的程序设计人员都将从中获益良多。” ——Ed Lansinger(通用汽车公司项目工程师)   在本书中.lra Pohl这位经验丰富的教育家和程序设计师将已发布的700页ANSI标准浓缩成
一张通往c++编程核心内容的简明地图。他选取了C++语言中最重要、最常用的语言元素进行 介绍.提供了语法、语义和实例.同时还奉献了从20多年的程序设计经验中提炼的对于编程风格的建议。

  本书特点
  ●涵盖如标准模板库(STL)、名字域、RTTI、布尔数据类型等C++语言的重要新特征
  ●专门的标准模板库章节提供有关这一强大新库的参考和范例。其中包括对string库的描述
  ●从丰富的编程经验中提炼出的程序设计技巧
  ●登录http://www.cse.ucsc.edupohldrp.html可获得本书所有范例程序代码及用于阐明书中观点的附加程序

图书特色

Ira Pohl是美国加州大学圣克鲁兹分校计算机科学技术系教授,具有20多年软件教学经验,是C和C++语言程序设计的国际权威,著有多部与C语言和C++语言相关的经典著作。他曾为多家机构提供技术咨询服务,包括DEC公司、苹果公司、斯坦福线性加速器研究中心、Xylinx和Gupta公司等。

图书前言

前   言
本书是对现有专业著述的补充并提供更新的内容。本书适用于学习ANSI C++(包括I/O和标准模板库)的学生和专业程序开发人员,同时也可作为计算机类专业人员学习C++语言的参考书。
本书如同一张通向C++编程精髓的简明地图,同时也是一本编程风格规范的指南,有选择性地概述了已发布的ANSI标准C++语言,同时介绍了许多程序设计的技巧。本书可随意与任何一本有关C++程序设计的书同时使用(可在本书第20章“参考文献”列出的书目中进行选择),并且特别适合与作者的其他著述一同使用,如《C++面向对象程序设计》(第2版)(参见OPUS 97)。
本书各章节分别介绍了C++语言中各种元素的语法、语义和实例。大多数章节的结束部分都给出关于编程风格和程序设计技巧的提示。书中所有的例子自始至终采用专业的编程风格,便于程序设计人员学习。
本书可谓ANSI标准的浓缩。ANSI标准技术细节具体而详实,但将近700页的内容过于繁复。事实上,标准中所述的许多特征,因其专业程度过高而实际应用很少。大多数程序设计人员并不需要这样的细节说明,他们需要的是能够尽快地温习近期没有使用过的语法和语义。
C++增加了许多新的内容,包括标准模板库(STL)、名字域、RTTI以及BOOL数据类型。精通C++基础的人运用上述技术是非常容易的,但遗憾的是,在大多数专业书籍中并没有专门论述这些主题。本书则是掌握这些新特征的简易指南。
无论是本书中的例子,还是Addison-Wesley网站中提供的例子,都旨在展示规范的程序设计风格。作者的大部分程序设计都是通过参照已有代码完成的,书中的例子使用了我的许多程序设计技巧和提示(“P博士建议”),这些都是从大量专业实践经验中总结的精华。
在Addison-Wesley网站上,既有本书中的例子,也提供附加的程序来阐明本书中的观点,或对书中的程序加以充实。网站上提供的程序都以.cpp或.h作为扩展名,读者可通过浏览以下站点得到:
www.aw.com/cseng/authors/poh1/drp/program_name.cpp
  范例程序
程序hello1.cpp
  P博士建议:风格与规范提示
请使用本书中采用的编程风格。
编程风格应始终保持一致。
建议探讨
编程风格强调代码的清晰性、模块化与共享性。一致性尽管只是很小的习惯,但同样适用于大段的代码。
致谢
在此,我要感谢本书的编辑J. Carter Shanklin、编辑助理Angela Buenning和产品经理Pamela Yee,在他们的支持下,本书才得以完成。同样,我还要感谢这些评论家们:通用汽车公司的Ed Lansinger、罗切斯特理工学院的Henry A. Etlinger、Deen出版公司的Glen Deen、哥伦布州立大学的Michael Keenan以及David Gregory。最为重要的是,我要感谢Debra Dolsberry在本书技术编辑上给予的宝贵帮助和对代码的细心测试。

译者简介

王树武 陈朔鹰:暂无简介

译者序

译  者  序
C++是从C语言进化而来的一种程序设计语言,它既保留了有效的结构化语言这一传统特征,同时融合了面向对象的能力,不仅可以进行过程化程序设计,也可以进行面向对象程序设计。C++作为一种面向对象程序设计语言,已成为程序设计人员广泛使用的工具。
对于已经熟悉C语言的程序开发者来说,C++在程序结构的本质上与C语言是一致的,因此,在面向对象的思想指导下,他们在学习C++时不会存在太多的困难。但是,要进一步掌握C++并熟练地使用,则需要丰富的实践积累和系统的指导。对于刚刚从事程序开发工作的人来说,他们已经经历了通过阅读有关C++教科书学习这种语言的阶段,这时往往需要一本程序设计语言手册以备不时之需。但是,洋洋洒洒700多页的ANSI标准C++技术手册令人觉得难以忍受。对于他们,本书可谓是一本好书,它是对现有专业著述内容的补充和更新。
本书的特点就是“浓缩”,它并不像我们常见的介绍C++的书籍,不分重点和层次,将C++的全部内容不分主辅做成一桌大餐,一下子就端到客人面前,让已经对C++有所了解的人会觉得眼花缭乱,如同一个半饱的食客面对一桌大餐只好自己来寻找最对胃口的精华;而对C++还不太了解的人,面对厚厚一本书又不知该如何入手。本书的作者如同一名高超的厨师,他放弃了作大餐的方式,而是选取了C++中最有特色的部分,将它们精心烹调成几道具有鲜明特色的小菜,呈现给处于半饱状态的“食客”。正是因为这样的特色,使得这本书在众多C++的著述中卓而不群。
正如作者在前言中所说,本书是一张通向C++编程精髓的简明地图。在本书里,作者首先介绍了C++重要的语法、语义,使读者可以尽快地熟悉基本概念,然后针对标准模板库(STL)、名字域、运行时类型识别(RTTI)以及BOOL数据类型等,这些在大多数专业书籍中并没有详细论述的内容,进行了比较深入的介绍。以上的特点和内容组织,使本书特别适合已经熟练掌握C++基本语法,或已经具有比较丰富的程序设计经验的开发人员,这些读者可以在短期内掌握C++的精髓。通过作者对C++内容的筛选,突出了C++的重点和特点。
本书的另一个特色是在每个章节都给出丰富的示例。这些示例凝聚了作者20多年程序设计的实践经验,体现了专业化的编程风格和丰富的程序设计技巧。所列举的程序实例短小精要,具有很强的针对性,非常好地反映了C++的特性。读者通过参照作者给出的示例进行程序设计,可以迅速提高自己的程序设计水平。
全书分别介绍了程序结构、词法符号、常量、声明及作用域规则、文件链接规则、类型、类型转换、表达式及运算符、语句、函数、类、继承、模板、异常、输入/输出、标准模板库、字符串库、注意事项及兼容性,最后谈及C++新特性。
作者在第20章给出了参考书目。配合其他C++程序设计的参考书籍使用,本书可作为深入学习C++的教学参考书和专业培训教材,也可作为计算机专业技术人员的参考手册。
本书由北京理工大学计算机科学工程系王树武、陈朔鹰、石磊、王捷民、范国泽、谢富贵和李江等人翻译,王树武和陈朔鹰负责审校并定稿。限于时间和水平所限,错误在所难免,欢迎批评指正。

译者于北京理工大学
2003年夏

图书目录

出版者的话
专家指导委员会
译者序
前言
第1章  程序结构 1
第2章  词法成分 5
2.1  注释 5
2.2  标识符 6
2.3  关键字 6
第3章  常量 9
第4章  声明及作用域规则 13
第5章  文件链接规则 19
第6章  类型 23
第7章  类型转换 27
第8章  表达式及运算符 31
8.1  sizeof表达式 31
8.2  自增表达式和自减表达式 32
8.3  算术表达式 32
8.4  关系、等式及逻辑表达式 33
8.5  赋值表达式 34
8.6  逗号表达式 35
8.7  条件表达式 35
8.8  位操作表达式 35
8.9  取地址表达式和取内容表达式 36
8.10  new表达式和delete表达式 36
8.10.1  对象放置语法和重载 38
8.10.2  错误处理 40
8.11  其他表达式 40
第9章  语句 43
9.1  表达式语句 44
9.2  复合语句 45
9.3  if和if-else语句 45
9.4  while语句 46
9.5  for语句 46
9.6  do语句 48
9.7  break和continue语句 48
9.8  switch语句 49
9.9  goto语句 51
9.10  return语句 51
9.11  声明语句 52
第10章  函数 55
10.1  函数原型 56
10.2  引用调用 57
10.3  内联函数 57
10.4  默认值 58
10.5  重载 58
10.6  类型安全的函数链接 60
第11章  类 63
11.1  构造函数与析构函数 64
11.2  成员函数 68
11.3  友元函数 68
11.4  this指针 70
11.5  运算符重载 70
11.6  静态及常值成员函数 73
11.7  mutable 75
11.8  类的设计 76
第12章  继承 79
12.1  多继承 80
12.2  构造函数调用过程 81
12.3  抽象基类 81
12.4  类成员指针 82
12.5  运行时类型识别 82
12.6  虚函数 83
第13章  模板 89
13.1  模板参数 90
13.2  函数模板 91
13.3  友元 92
13.4  静态成员 92
13.5  模板专门化 92
第14章  异常 97
14.1  抛出异常 97
14.2  try代码块 98
14.3  异常处理 99
14.4  异常规格说明 100
14.5  terminate()和unexpected() 100
14.6  标准异常库 100
第15章  输入/输出 107
15.1  输出类ostream 107
15.2  格式化输出和iomanip.h 108
15.3  用户自定义类型:输出 110
15.4  输入类istream 112
15.5  文件 113
15.6  流式字符串 115
15.7  ctype.h中的函数及宏 116
15.8  使用流状态 117
15.9  混合I/O流库 118
第16章  STL 123
16.1  容器 124
16.1.1  序列式容器 126
16.1.2  关联式容器 127
16.1.3  容器适配器 129
16.2  迭代器 131
16.2.1  迭代器的分类 132
16.2.2  输入流迭代器 132
16.2.3  输出流迭代器 133
16.2.4  迭代器适配器 134
16.3  算法 136
16.3.1  分类算法 136
16.3.2  非质变序列算法 139
16.3.3  质变序列算法 140
16.3.4  数值算法 143
16.4  函数 144
16.5  分配器 148
第17章  字符串库 151
17.1  构造函数 152
17.2  成员函数 153
17.3  全局运算符 157
第18章  注意事项及兼容性 159
18.1  嵌套类声明 159
18.2  类型兼容性 159
18.3  其他 160
第19章  C++的新特性 161
参考文献 163
索引 165

教学资源推荐
作者: [美]梁勇(Y. Daniel Liang) 著
作者: [美] 尤金尼·E.米哈伊洛夫(Eugeniy E. Mikhailov) 著
作者: [美]布兰德利·N. 米勒(Bradley N. Miller) 大卫·L. 拉农(David L. Ranum) 朱莉·安德森(Julie Anderson) 著
作者: [美] 托尼·加迪斯(Tony Gaddis) 著
参考读物推荐