C和C++代码精粹

C和C++代码精粹
作 者: Chuck Allison 董慧颖
出版社: 人民邮电出版社
丛编项: C和C++实务精选
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: C语言 程序设计
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

暂缺《C和C++代码精粹》作者简介

内容简介

本书基于作者备受好评的C/C++ User Journal杂志上的每月专栏,通过大量完全符合ISO标准C++的程序集合,说明了C++真正强大的威力,是C和C++职业程序员的实践指南。 全书分为3篇共20章,分别从指针、预处理器、C标准库、抽象、模板、异常、算法、容器、文件处理、动态内存管理等不同层次的话题展开讨论。书中的精粹代码,对于C和C++程序员具有很好的使用价值和启发意义。 本书可以帮助有一定经验的C和C++程序员深入学习这两种密切相关的语言,对书中代码的参悟和应用,可以帮助他们从根本上提高使用程序的效率。

图书目录

第一部分 预备知识

第1章 更好的C 3

1.1 两种语言简述 3

1.2 循序渐进 4

1.3 类型系统 4

1.4 函数原型 5

1.5 类型安全连接 9

1.6 引用 10

1.7 类型安全I/O 11

1.8 标准流 12

1.9 格式化 14

1.10 操纵器 18

1.11 函数重载和函数模板 22

1.12 运算符重载 22

1.13 内联函数 24

1.14 缺省参数 25

1.15 new和delete 26

1.16 语句声明 26

1.17 标准库特征 27

1.18 C的兼容性 27

1.19 小结 29

第2章 指针 31

2.1 容易出错的编程 31

2.2 基础 31

2.3 指针运算 35

2.4 传引用语义 38

2.5 普通指针 39

2.6 const指针 40

2.7 指针和一维数组 42

2.8 数组作为参数 47

2.9 字符串数组 49

2.10 指针和多维数组 50

2.11 更高深的内容 53

2.12 指向函数的指针 56

2.13 指向成员函数的指针 59

2.14 封装和不完全类型 61

2.15 小结 65

第3章 预处理器 67

3.1 #include指令 67

3.2 其他的预处理指令 68

3.3 预定义宏 70

3.4 条件编译 72

3.5 预处理运算符 73

3.6 实现assert 75

3.7 宏的魅力 76

3.8 字符集. 三字符运算符和双字符运算符 79

3.9 翻译阶段 82

3.10 小结 82

第4章 C标准库之一:面向合格的程序员 83

4.1

ctype.h  84

4.2

stdio.h  87

4.3

stdlib.h  91

4.4

string.h  100

第5章 C标准库之二:面向熟练的程序员 103

5.1

assert.h  103

5.2

limits.h  104

5.3

stddef.h  107

5.4

time.h  110

5.5 字符集 112

5.6 代码页 114

5.7 字符集标准 115

5.8 ISO 10646 115

5.9 统一字符编码 116

第6章 C标准库之三:面向优秀的程序员 117

6.1

float.h  117

6.2

math.h  119

6.3

error.h  123

6.4

locale.h  124

6.5

setjmp.h  126

6.6

signal.h  127

6.7

stdarg.h  128

6.8 va_list作为参数 130

6.9 应用 131

6.10 结论 135

6.11 浮点数系统 135

第二部分 主要概念

第7章 抽象 145

7.1 数据抽象 145

7.2 运算符重载 154

7.3 具体的数据类型 158

7.4 类型抽象 164

7.5 函数抽象 166

7.6 小结 167

第8章 模板 169

8.1 泛型编程 171

8.2 函数模板 171

8.3 类模板 173

8.4 模板参数 177

8.5 模板特化 179

8.6 小结 183

第9章 位操作 185

9.1 按位运算符 185

9.2 访问单独的位 187

9.3 大型置位 193

9.4 位字符串 205

9.5 Wish List 205

9.6 bitset模板 206

9.7 vector bool 模板特化 208

9.8 小结 209

第10章 类型转换和强制类型转换 211

10.1 整数的升级 211

10.2 降级 215

10.3 算术类型转换 216

10.4 函数原型 218

10.5 显式类型转换 220

10.6 函数风格强制类型转换 221

10.7 const的正确性 221

10.8 用户定义的类型转换 223

10.9 加强运算符[] 229

10.10 新风格强制类型转换 231

10.11 小结 233

第11章 可见性 235

11.1 名字中包含什么 235

11.2 作用域 235

11.3 最小的作用域 238

11.4 类的作用域 239

11.5 嵌套类 244

11.6 局部类 246

11.7 典型的名字空间 247

11.8 名字空间的作用域 249

11.9 生存期 250

11.10 临时对象的生存期 253

11.11 连接 254

11.12 类型安全连接 258

11.13 “语言”连接 258

11.14 小结 259

第12章 控制结构 261

12.1 结构化编程 261

12.2 分支 270

12.3 非局部分支 273

12.4 信号 277

12.5 小结 282

12.6 参考文献 282

第13章 异常 283

13.1 可选择的错误处理方法 283

13.2 堆栈展开 288

13.3 异常捕捉 290

13.4 标准异常 293

13.5 资源管理 293

13.6 构造函数和异常 298

13.7 内存管理 303

13.8 异常规范 304

13.9 错误处理策略 306

13.10 小结 309

第14章 面向对象编程 311

14.1 继承 314

14.2 不同种类的集合 316

14.3 虚函数和多态 316

14.4 抽象基类 319

14.5 实例研究:一个对象持续的框架 322

14.6 数据库访问 324

14.7 映射对象到相关模式 326

14.8 PFX的结构 327

14.9 一个代码的预排 330

14.10 小结 349

第三部分 使用标准库

第15章 算法 353

15.1 复杂度 354

15.2 通用算法 356

15.3 函数对象 360

15.4 函数种类 361

15.5 函数对象适配器 362

15.6 算法种类 363

15.7 小结 366

15.8 参考文献 366

第16章 容器和迭代器 367

16.1 标准容器 370

16.2 迭代器 371

16.3 迭代器种类 372

16.4 特殊用途的迭代器 373

16.5 容器适配器 376

16.6 关联容器 377

16.7 应用 377

16.8 非标准模板库容器 385

16.9 小结 387

第17章 文本处理 389

17.1 scanf 389

17.2 printf 394

17.3 子字符串 397

17.4 标准C 字符串类 403

17.5 字符串流 406

17.6 宽字符串 408

17.7 小结 408

第18章 文件处理 409

18.1 过滤器 409

18.2 二进制文件 412

18.3 记录处理 414

18.4 临时文件 419

18.5 可移植性 420

18.6 POSIX 420

18.7 文件描述符 421

18.8 通过描述符来拷贝文件 421

18.9 读目录条目 423

18.10 重定向标准错误 427

18.11 封装重定向操作 431

18.12 小结 436

第19章 时间和日期处理 437

19.1 Julian日期编码 442

19.2 用于实际工作的日期类 460

19.3 计算年的星期数 486

19.4 小结 487

19.5 参考文献 487

第20章 动态内存管理 489

20.1 参差数组 489

20.2 在标准C中使用堆 491

20.3 C 的自由存储 495

20.4 浅拷贝与深拷贝 496

20.5 处理内存分配失败 499

20.6 重载new和delete 499

20.7 配置new 501

20.8 堆的管理 503

20.9 避免内存管理 504

20.10 小结 510

附录A C/C

的兼容性 513

附录B 标准C 算法 515

附录C 函数对象和适配器 525

附录D 有注解的参考书目 529

附录E C 标准的制定 531