Essential C++中文版
出版信息
李普曼 (Stanley B.Lippman) / 侯捷 / 电子工业出版社 / 2013-8-1 / CNY 65.00
内容简介
本书以四个面向来表现C++的本质:procedural(面向过程的)、generic(泛型的)、object-based(基于对象的)、objectoriented(面向对象的)。全书围绕一系列逐渐繁复的程序问题,以及用以解决这些问题的语言特性来组织。循此方式,你将不只学到C++的功能和结构,也可学到它们的设计目的和基本原理。
本书适合那些已经开始从事软件设计,又抽不出太多时间学习新技术的程序员阅读。
作者简介
Stanley B.Lippman
畅销图书《C++ Primer》作者,其职业是提供关于C++和面向对象的训练、咨询、设计和指导。他在成为一名独立咨询顾问之前,曾经是迪士尼动画公司的首席软件设计师。当他在AT&T Bell实验室的时候,领导了Cfront 3.0版本和2.1版本的编译器开发组。他也是Bjarne Stroustrup领导的Bell实验室Foundation项目的成员之一,负责C++程序设计环境中的对象模型部分。他还撰写了许多关于C++的文章。目前他已受雇于微软公司,负责Visual C++项目。
侯捷是计算机技术书籍的作家、译者、书评人。著有《深入浅出MFC》《多型与虚拟》《STL源码剖析》、《无责任书评》三卷,译有众多脍炙人口的高阶技术书籍,包括Meyers所著的“Effective C++”系列。侯捷兼任教职于元智大学、同济大学、南京大学。他的个人网址是http://www.jjhou.com(中文繁体)和http://jjhou.csdn.net(中文简体)。
目录
满汉全席之外(译序/侯捷) ........................................................................................ v
前言Preface ................................................................................................................... xi
结构与组织 ............................................................................................................... xiii
关于源代码 ............................................................................................................... xiii
致谢 .......................................................................................................................... xiv
更多读物 ................................................................................................................... xiv
排版约定 .................................................................................................................... xv
第1 章 C++编程基础 Basic C++ Programming ........................................................... 1
1.1 如何撰写C++程序 ............................................................................................ 1
1.2 对象的定义与初始化 ......................................................................................... 7
1.3 撰写表达式 ....................................................................................................... 10
1.4 条件语句和循环语句 ....................................................................................... 15
1.5 如何运用Array 和Vector ................................................................................ 22
1.6 指针带来弹性 ................................................................................................... 26
1.7 文件的读写 ....................................................................................................... 30
第2 章 面向过程的编程风格 Procedural Programming ........................................ 35
2.1 如何编写函数 ................................................................................................... 35
2.2 调用函数 ........................................................................................................... 41
2.3 提供默认参数值 ............................................................................................... 50
2.4 使用局部静态对象 ........................................................................................... 53
2.5 声明inline 函数 ................................................................................................ 55
2.6 提供重载函数 ................................................................................................... 56
2.7 定义并使用模板函数 ....................................................................................... 58
2.8 函数指针带来更大的弹性 ............................................................................... 60
2.9 设定头文件 ....................................................................................................... 63
第3 章 泛型编程风格 Generic Programming ........................................................ 67
3.1 指针的算术运算 ............................................................................................... 68
3.2 了解Iterator(泛型指针) .............................................................................. 73
3.3 所有容器的共通操作 ....................................................................................... 76
3.4 使用顺序性容器 ............................................................................................... 77
3.5 使用泛型算法 ................................................................................................... 81
3.6 如何设计一个泛型算法 ................................................................................... 83
3.7 使用Map .......................................................................................................... 90
3.8 使用Set ............................................................................................................. 91
3.9 如何使用Iterator Inserter ................................................................................. 93
3.10 使用iostream Iterator ....................................................................................... 95
第4 章 基于对象的编程风格 Object-Based Programming ...................................... 99
4.1 如何实现一个Class ....................................................................................... 100
4.2 什么是构造函数和析构函数 ......................................................................... 104
4.3 何谓mutable(可变)和const(不变) .................................................. 109
4.4 什么是this 指针 ........................................................................................... 113
4.5 静态类成员 ..................................................................................................... 115
4.6 打造一个Iterator Class .................................................................................. 118
4.7 合作关系必须建立在友谊的基础上 ............................................................. 123
4.8 实现一个copy assignment operator ............................................................... 125
4.9 实现一个function object ................................................................................ 126
4.10 重载iostream 运算符 ..................................................................................... 128
4.11 指针,指向Class Member Function .............................................................. 130
第5 章 面向对象编程风格 Object-Oriented Programming ..................................... 135
5.1 面向对象编程概念 ......................................................................................... 135
5.2 漫游:面向对象编程思维 ............................................................................. 138
5.3 不带继承的多态 ............................................................................................. 142
5.4 定义一个抽象基类 ......................................................................................... 145
5.5 定义一个派生类 ............................................................................................. 148
5.6 运用继承体系 ................................................................................................. 155
5.7 基类应该多么抽象 ......................................................................................... 157
5.8 初始化、析构、复制 ..................................................................................... 158
5.9 在派生类中定义一个虚函数 ......................................................................... 160
5.10 运行时的类型鉴定机制 ................................................................................. 164
第6 章 以template 进行编程 Programming with Templates .................................... 167
6.1 被参数化的类型 ............................................................................................. 169
6.2 Class Template 的定义 ................................................................................... 171
6.3 Template 类型参数的处理 ............................................................................. 172
6.4 实现一个Class Template ............................................................................... 174
6.5 一个以Function Template 完成的Output 运算符 ........................................ 180
6.6 常量表达式与默认参数值 ............................................................................. 181
6.7 以Template 参数作为一种设计策略 ............................................................ 185
6.8 Member Template Function ............................................................................ 187
第7 章 异常处理 Exception Handling .................................................................. 191
7.1 抛出异常 ......................................................................................................... 191
7.2 捕获异常 ......................................................................................................... 193
7.3 提炼异常 ......................................................................................................... 194
7.4 局部资源管理 ................................................................................................. 198
7.5 标准异常 ......................................................................................................... 200
附录A 习题解答 Exercises Solutions ............................................................................ 205
附录B 泛型算法参考手册 Generic Algorithms Handbook .................................. 255
附录C 中英术语对照 侯捷 ..................................................................................... 271
英文术语的采用原则 .............................................................................................. 271
中英术语对照(按字母顺序排列) ...................................................................... 272
索引 Index ................................................................................................................. 277