图书目录

目 录

第0章 致读者  1

0.1 本书的结构  2

0.2 讲授和学习本书的方法  4

0.3 ISO C++标准  7

0.4 PPP支持  10

0.5 作者简介  11

0.6 参考资料  12

附言  12

第一部分 基础  13

第1章 Hello, World!  14

1.1 程序  15

1.2 经典的第一个程序  15

1.3 编译  17

1.4 链接  19

1.5 编程环境  20

练习题  21

思考题  22

术语  22

解答题  23

附言  24

第2章 对象、类型和值  25

2.1 输入  26

2.2 变量  28

2.3 输入与类型  29

2.4 运算与运算符  30

2.5 赋值与初始化  32

2.6 名称  36

2.7 类型与对象  38

2.8 类型安全  39

2.9 转换  40

2.10 类型推导:auto  42

练习题  42

思考题  43

术语  44

解答题  44

附言  45

第3章 计算  46

3.1 计算的定义  47

3.2 目标与工具  48

3.3 表达式  49

3.4 语句  53

3.5 函数  62

3.6 vector  65

3.7 语言特性  70

练习题  70

思考题  71

术语  72

解答题  72

附言  74

第4章 错误  75

4.1 引言  76

4.2 错误来源  77

4.3 编译时错误  78

4.4 链接时错误  80

4.5 运行错误  80

4.6 异常  85

4.7 避免错误、发现错误  91

练习题  100

思考题  101

术语  102

解答题  102

附言  104

第5章 写一个程序  105

5.1 提出问题  106

5.2 分析问题  106

5.3 回到计算器!  109

5.4 重新设计  115

5.5 将语法转化为代码  119

5.6 尝试第一个版本  125

5.7 尝试第二个版本  129

5.8 标记流  130

5.9 程序结构  135

练习题  136

思考题  136

术语  137

解答题  137

附言  138

第6章 完成一个程序  139

6.1 引言  140

6.2 输入与输出  140

6.3 错误处理  142

6.4 负数  144

6.5 求余数:%  146

6.6 代码整理  147

6.7 从错误中恢复  152

6.8 变量  154

练习题  162

思考题  163

术语  163

解答题  163

附言  164

第7章 技术细节:函数等  165

7.1 技术细节  166

7.2 声明与定义  167

7.3 作用域  171

7.4 函数调用与返回  175

7.5 求值顺序  189

7.6 命名空间  192

7.7 模块与头文件  194

练习题  197

思考题  198

术语  199

解答题  200

附言  201

第8章 技术细节:类及其他  202

8.1 自定义类型  203

8.2 类和成员  204

8.3 接口与实现  204

8.4 类的演化:Date   206

8.5 枚举类型  213

8.6 运算符重载  215

8.7 类接口  217

练习题  224

思考题  225

术语  225

解答题  225

附言  227

第二部分 输入和输出  229

第9章 输入和输出流  230

9.1 输入与输出  231

9.2 I/O流模型  232

9.3 文件  233

9.4 I/O 错误处理  237

9.5 读取单个值  239

9.6 用户自定义输出运算符  244

9.7 用户自定义输入运算符  245

9.8 标准输入循环  245

9.9 读取结构化文件  247

9.10 格式化  254

9.11 字符串流  260

练习题  261

思考题  262

术语  263

解答题  263

附言  265

第10章 显示模型  266

10.1 为什么需要图形?  267

10.2 显示模型  267

10.3 第一个示例  268

10.4 使用GUI库  271

10.5 坐标系  272

10.6 形状  273

10.7 使用形状原语  273

10.8 运行第一个示例  281

练习题  284

思考题  284

术语  285

解答题  285

附言  286

第11章 图形类  287

11.1 图形类概览  288

11.2 Point(点)和Line(线)  290

11.3 Lines(多线条)  291

11.4 Color(颜色)  294

11.5 Line_style(线条样式)  296

11.6 Polyline(折线)  298

11.7 封闭形状  302

11.8 Text(文本)  312

11.9 Mark(标记)  314

11.10 Image(图像)  315

练习题  317

思考题  318

术语  318

解答题  319

附言  319

第12章 类设计  320

12.1 设计原则  321

12.2 Shape  325

12.3 基类与派生类  331

12.4 其他Shape函数  338

12.5 面向对象编程的优势  339

练习题  340

思考题  341

术语  341

解答题  342

附言  343

第13章 绘制函数和数据  344

13.1 引言  345

13.2 绘制简单函数图形  345

13.3 Function  348

13.4 Axis(坐标轴)  351

13.5 近似  353

13.6 绘制数据  357

练习题  363

思考题  364

术语  365

解答题  365

附言  366

第14章 图形用户界面  367

14.1 用户界面选择  368

14.2 Next按钮  369

14.3 一个简单的窗口  370

14.4 Button(按钮)和其他Widget(控件)  372

14.5 一个例子:绘制线条  376

14.6 简单动画  382

14.7 调试GUI代码  384

练习题  386

思考题  386

术语  386

解答题  387

附言  387

第三部分 数据和算法  389

第15章 动态数组与自由存储区  390

15.1 引言  391

15.2 vector(动态数组)基础  392

15.3 内存、地址和指针  393

15.4 自由存储区和指针  396

15.5 析构函数  400

15.6 访问元素   404

15.7 一个例子:链表(list)  405

15.8 this指针  409

练习题  412

思考题  413

术语  414

解答题  414

附言  415

第16章 数组、指针与引用  416

16.1 数组  417

16.2 指针与引用  421

16.3 C风格字符串  423

16.4 指针用法的替代方案  425

16.5 示例:回文  427

练习题  431

思考题  431

术语  432

解答题  432

附言  433

第17章 基础操作  434

17.1 引言  435

17.2 元素访问  435

17.3 列表初始化  437

17.4 拷贝与移动  438

17.5 基础操作  446

17.6 其他有用操作  451

17.7 Vector剩余问题  452

17.8 改变大小  455

17.9 至此我们实现的Vector   459

练习题  461

思考题  461

术语  462

解答题  462

附言  462

第18章 模板与异常  463

18.1 模板  464

18.2 泛化Vector  471

18.3 范围检查与异常  474

18.4 资源与异常  478

18.5 资源管理指针  485

练习题  489

思考题  489

术语  490

解答题  490

附言  491

第19章 容器与迭代器  492

19.1 数据的存储与处理  493

19.2 序列与迭代器  499

19.3 链表  502

19.4 再次对Vector进行泛化  506

19.5 示例:一个简单的文本编辑器  512

19.6 vector、list与string  518

练习题  519

思考题  520

术语  520

解答题  521

附言  522

第20章 映射与集合  523

20.1 关联容器  524

20.2 map(映射)  524

20.3 unordered_map  530

20.4 计时  532

20.5 set(集合)  535

20.6 容器概览  536

20.7 范围(ranges)和迭代器  541

练习题  544

思考题  544

术语  545

解答题  545

附言  546

第21章 算法  547

21.1 标准库算法  548

21.2 函数对象  553

21.3 数值算法  557

21.4 拷贝  562

21.5 排序和搜索  563

练习题  565

思考题  566

术语  566

解答题  566

附言  567