《C++大学教程 第2版》PDF下载

  • 购买积分:22 如何计算积分?
  • 作  者:(美)戴特等著;邱仲潘等译
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2003
  • ISBN:7505367277
  • 页数:816 页
图书介绍:C++大学教程(第二版),ISBN:9787505367272,作者:(美)Harvey M.Deitel,(美)Paul James Deitel著;邱仲潘 等译

第1章 计算机与C++编程简介 1

1.1 简介 1

1.2 什么是计算机 3

1.3 计算机组成 3

1.4 操作系统的变革 4

1.5 个人计算、分布式计算与客户/服务器计算 4

1.6 机器语言、汇编语言和高级语言 5

1.7 C语言与C++的历史 6

1.8 C++标准库 7

1.9 Java、Internet与万维网 7

1.10 其他高级语言 8

1.11 结构化编程 8

1.12 典型C++环境基础 8

1.13 C++与本书的一般说明 10

1.14 C++编程简介 11

1.15 简单程序:打印一行文本 12

1.16 简单程序:两个整数相加 15

1.17 内存的概念 18

1.18 算术运算 19

1.19 判断:相等与关系运算符 21

1.20 新型头文件与名字空间 24

1.21 有关对象的思考 25

小结 27

术语 29

自测练习 31

自测练习答案 33

练习 34

第2章 控制结构 38

2.1 简介 38

2.2 算法 38

2.3 伪代码 39

2.4 控制结构 39

2.5 if选择结构 41

2.6 if/else选择结构 42

2.7 while重复结构 45

2.8 构造算法:实例研究1(计数器控制重复) 47

2.9 构造算法与自上而下逐步完善:实例研究2(标记控制重复) 48

2.10 构造算法与自上而下逐步完善:实例研究3(嵌套控制结构) 54

2.11 赋值运算符 57

2.12 自增和自减运算符 58

2.13 计数器控制循环的要点 60

2.14 for重复结构 62

2.15 for结构使用举例 65

2.16 switch多项选择结构 68

2.17 do/while重复结构 74

2.18 break和continue语句 75

2.19 逻辑运算符 77

2.20 混淆相等(==)与赋值(=)运算符 79

2.21 结构化编程小结 80

2.22 有关对象的思考:确定问题中的对象 84

小结 85

术语 86

自测练习 87

自测练习答案 89

练习 92

第3章 函数 102

3.1 简介 102

3.2 C++程序组件 102

3.3 数学函数库 103

3.4 函数 104

3.5 函数定义 105

3.6 函数原型 108

3.7 头文件 110

3.8 随机数产生器 111

3.9 案例:机会游戏与enum简介 115

3.10 存储类 118

3.11 作用域规则 120

3.12 递归 123

3.13 使用递归举例:Fibonacci数列 125

3.14 递归与迭代 128

3.15 带空参数表的函数 129

3.16 内联函数 130

3.17 引用与引用参数 131

3.18 默认参数 135

3.19 一元作用域运算符 136

3.20 函数重载 137

3.21 函数模板 138

3.22 有关对象的思考:确定对象属性 140

小结 142

术语 145

自测练习 146

自测练习答案 149

练习 151

第4章 数组 160

4.1 简介 160

4.2 数组 160

4.3 声明数组 162

4.4 使用数组的举例 162

4.5 将数组传递给函数 174

4.6 排序数组 177

4.7 实例研究:用数组计算平均值、中数和模 179

4.8 查找数组:线性查找与折半查找 182

4.9 多下标数组 186

4.10 有关对象的思考:确定类的行为 191

小结 192

术语 193

自测练习 194

自测练习答案 195

练习 196

递归练习 204

第5章 指针与字符串 206

5.1 简介 206

5.2 指针变量的声明与初始化 206

5.3 指针运算符 207

5.4 按引用调用函数 210

5.5 指针与常量限定符 213

5.6 按引用调用的冒泡排序 218

5.7 指针表达式与指针算法 222

5.8 指针与数组的关系 224

5.9 指针数组 228

5.10 实例研究:洗牌与发牌 228

5.11 函数指针 232

5.12 字符与字符串处理简介 236

5.12.1 字符与字符串基础 236

5.12.2 字符串处理库的字符串操作函数 238

5.13 有关对象的思考:对象间的交互 244

小结 245

术语 247

自测练习 248

自测练习答案 250

练习 251

特殊小节:建立自己的计算机 254

更多的指针练习 258

字符串操作练习 262

特殊小节:高级字符串操作练习 263

复杂字符串操作练习 266

第6章 类与数据抽象(一) 267

6.1 简介 267

6.2 结构定义 268

6.3 访问结构成员 268

6.4 用struct实现用户自定义类型Time 269

6.5 用类实现Time抽象数据类型 271

6.6 类范围与访问类成员 276

6.7 接口与实现方法的分离 277

6.8 控制对成员的访问 280

6.9 访问函数与工具函数 282

6.10 初始化类对象:构造函数 284

6.11 在构造函数中使用默认参数 285

6.12 使用析构函数 288

6.13 何时调用构造函数与析构函数 288

6.14 使用数据成员和成员函数 291

6.15 微妙的陷阱:返回对private数据成员的引用 295

6.16 通过默认的成员复制进行赋值 297

6.17 软件复用性 298

6.18 有关对象的思考:编写电梯模拟程序的类 298

小结 299

术语 300

自测练习 301

自测练习答案 302

练习 302

第7章 类与数据抽象(二) 305

7.1 简介 305

7.2 const(常量)对象与const成员函数 305

7.3 复合:把对象作为类成员 312

7.4 友元函数与友元类 316

7.5 使用this指针 319

7.6 动态内存分配与new和delete运算符 323

7.7 static类成员 324

7.8 数据抽象与信息隐藏 328

7.8.1 范例:数组抽象数据类型 329

7.8.2 范例:字符串抽象数据类型 330

7.8.3 范例:队列抽象数据类型 330

7.9 容器类与迭代 330

7.10 代理类 331

7.11 有关对象的思考:在电梯模拟程序中使用复合和动态对象管理 332

小结 333

术语 334

自测练习 335

自测练习答案 335

练习 336

第8章 运算符重载 338

8.1 简介 338

8.2 运算符重载的基础 338

8.3 运算符重载的限制 340

8.4 用作类成员与友元函数的运算符函数 341

8.5 重载流插入与流读取运算符 342

8.6 重载一元运算符 344

8.7 重载二元运算符 345

8.8 实例研究:Array类 345

8.9 类型之间的转换 356

8.10 实例研究:String类 356

8.11 重载++与-- 366

8.12 实例研究:Date类 367

小结 371

术语 373

自测练习 374

自测练习答案 374

练习 374

第9章 继承 381

9.1 简介 381

9.2 继承:基类和派生类 382

9.3 protected成员 384

9.4 把基类指针强制转换为派生类指针 384

9.5 使用成员函数 388

9.6 在派生类中重定义基类成员 389

9.7 public、protected和private继承 392

9.8 直接基类和间接基类 393

9.9 在派生类中使用构造函数和析构函数 393

9.10 将派生类对象隐式转换为基类对象 396

9.11 关于继承的软件工程 397

9.12 复合与继承的比较 398

9.13 对象的“使用”关系和“知道”关系 398

9.14 实例研究:类Point、Circle和Cylinder 398

9.15 多重继承 404

小结 408

术语 410

自测练习 410

自测练习答案 411

练习 411

第10章 虚函数和多态性 412

10.1 简介 412

10.2 类型域和switch语句 412

10.3 虚函数 412

10.4 抽象基类和具体类 413

10.5 多态性 414

10.6 实例研究:利用多态性的工资单系统 415

10.7 新类和动态关联 424

10.8 虚析构函数 424

10.9 实例研究:继承接口和实现 425

10.10 多态、虚函数和动态关联 431

小结 434

术语 435

自测练习 435

自测练习答案 436

练习 436

第11章 C++输入/输出流 437

11.1 简介 437

11.2 流 438

11.2.1 iostream类库的头文件 438

11.2.2 输入/输出流类和对象 438

11.3 输出流 439

11.3.1 流插入运算符 440

11.3.2 连续使用流插入/流读取运算符 441

11.3.3 输出char*类型的变量 442

11.3.4 用成员函数put输出字符和put函数的连续调用 443

11.4 输入流 443

11.4.1 流读取运算符 443

11.4.2 成员函数get和getline 445

11.4.3 istream类中的其他成员函数(peek、putback和ignore) 447

11.4.4 类型安全的I/O 448

11.5 成员函数read、gcount和write的无格式输入/输出 448

11.6 流操纵算子 449

11.6.1 整数流的基数:流操纵算子dec、oct、hex和setbase 449

11.6.2 设置浮点数精度(precision、setprecision) 450

11.6.3 设置域宽(setw、width) 451

11.6.4 用户自定义的流操纵算子 452

11.7 流格式状态 453

11.7.1 格式状态标志 453

11.7.2 尾数零和十进制小数点(ios∷showpoint) 454

11.7.3 对齐(ios∷left、ios∷right、ios∷internal) 454

11.7.4 设置填充字符(fill、setfill) 456

11.7.5 整数流的基数:(ios∷dec、ios∷oct、ios∷hex、ios∷showbase) 457

11.7.6 浮点数和科学记数法(ios∷scientific、ios∷fixed) 457

11.7.7 大/小写控制(ios∷uppercase) 458

11.7.8 设置及清除格式标志(flags、setiosflags、resetiosflags) 459

11.8 流错误状态 460

11.9 把输出流连到输入流上 462

小结 462

术语 465

自测练习 467

自测练习答案 469

练习 471

第12章 模板 474

12.1 简介 474

12.2 函数模板 474

12.3 重载模板函数 477

12.4 类模板 477

12.5 类模板与非类型参数 482

12.6 模板与继承 483

12.7 模板与友元 483

12.8 模板与static成员 484

小结 484

术语 485

自测练习 486

自测练习答案 486

练习 487

第13章 异常处理 489

13.1 简介 489

13.2 何时使用异常处理 491

13.3 其他错误处理方法 491

13.4 C++异常处理基础:try、throw、catch 492

13.5 简单异常处理例子:除数为0 492

13.6 抛出异常 494

13.7 捕获异常 495

13.8 再抛出异常 497

13.9 异常指定 499

13.10 处理意外异常 499

13.11 堆栈解退 500

13.12 构造函数、析构函数与异常处理 501

13.13 异常与继承 501

13.14 处理new故障 501

13.15 auto_ptr类与动态内存分配 505

13.16 标准库异常层次 506

小结 507

术语 509

自测练习 510

自测练习答案 511

练习 511

第14章 文件处理 513

14.1 简介 513

14.2 数据的层次 513

14.3 文件和流 515

14.4 建立顺序访问文件 515

14.5 读取顺序访问文件中的数据 519

14.6 更新顺序访问文件 524

14.7 随机访问文件 524

14.8 建立随机访问文件 525

14.9 向随机访问文件中随机地写入数据 527

14.10 从随机访问文件中顺序地读取数据 528

14.11 实例研究:事务处理程序 530

14.12 对象的输入/输出 535

小结 535

术语 536

自测练习 537

自测练习答案 538

练习 539

第15章 数据结构 543

15.1 简介 543

15.2 自引用类 544

15.3 动态内存分配 544

15.4 链表 545

15.5 堆栈 556

15.6 队列 560

15.7 树 562

小结 568

术语 569

自测练习 570

自测练习答案 571

练习 572

特殊小节:建立自己的编译器 577

第16章 位、字符、字符串和结构 589

16.1 简介 589

16.2 结构的定义 589

16.3 结构的初始化 591

16.4 函数和结构 591

16.5 类型定义:typedef 592

16.6 范例:高效的洗牌和发牌模拟程序 592

16.7 位运算符 594

16.8 位段 601

16.9 字符处理库 603

16.10 字符串转换函数 608

16.11 字符串处理库中的查找函数 612

16.12 字符串处理库中的内存函数 616

16.13 字符串处理库中的其他函数 619

小结 620

术语 622

自测练习 623

自测练习答案 624

练习 625

第17章 预处理器 630

17.1 简介 630

17.2 预处理指令#include 630

17.3 预处理指令#define:符号常量 631

17.4 预处理指令#define:宏 631

17.5 条件编译 633

17.6 预处理指令#error和#pragma 634

17.7 运算符#和## 634

17.8 行号 635

17.9 预定义的符号常量 635

17.10 断言(宏assert) 635

小结 636

术语 637

自测练习 637

自测练习答案 638

练习 639

第18章 C语言遗留代码问题 640

18.1 简介 640

18.2 UNIX和DOS系统中的输入/输出重定向 640

18.3 变长参数表 641

18.4 使用命令行参数 643

18.5 对编译多个源文件程序的说明 644

18.6 用exit和atexit终止程序的执行 645

18.7 volatile类型限定符 646

18.8 整数和浮点数常量的后缀 647

18.9 信号处理 647

18.10 动态内存分配:函数calloc和realloc 649

18.11 无条件转移:goto语句 650

18.12 联合体 651

18.13 连接指定 653

小结 654

术语 656

自测练习 657

自测练习答案 657

练习 657

第19章 string类与字符串流处理 659

19.1 简介 659

19.2 string的赋值与连接 660

19.3 比较string 662

19.4 子串 665

19.5 交换string 665

19.6 string的特性 666

19.7 寻找string中的字符 668

19.8 替换string中的字符 670

19.9 在string中插入字符 671

19.10 转换成C语言式char*字符串 673

19.11 迭代器 674

19.12 字符串流处理 675

小结 678

术语 679

自测练习 680

自测练习答案 681

练习 681

第20章 标准模板库(STL) 684

20.1 标准模板库(STL)简介 684

20.1.1 容器简介 685

20.1.2 迭代器简介 688

20.1.3 算法简介 692

20.2 顺序容器 693

20.2.1 vector顺序容器 694

20.2.2 list顺序容器 700

20.2.3 deque顺序容器 703

20.3 关联容器 705

20.3.1 multiset关联容器 705

20.3.2 set关联容器 708

20.3.3 multimap关联容器 709

20.3.4 map关联容器 711

20.4 容器适配器 713

20.4.1 stack适配器 713

20.4.2 queue适配器 715

20.4.3 priority_queue适配器 716

20.5 算法 717

20.5.1 fill、fill_n、generate与generate_n 717

20.5.2 equal、mismatch和lexicographical_compare 719

20.5.3 remove、remove_if、remove_copy和remove_copy_if 721

20.5.4 replace、replace_if、replace_copy和replace_copy_if 724

20.5.5 数学算法 726

20.5.6 基本查找与排序算法 730

20.5.7 swap、iter_swap和swap_ranges 732

20.5.8 copy_backward、merge、unique和reverse 733

20.5.9 inplace_merge、unique_copy和reverse_copy 736

20.5.10 集合操作 737

20.5.11 lower_bound、upper_bound和equal_range 740

20.5.12 堆排序 742

20.5.13 min和max 744

20.5.14 本章未介绍的算法 745

20.6 bitset类 746

20.7 函数对象 749

小结 752

术语 755

自测练习 757

自测练习答案 757

练习 758

Internet和World Wide Web中的STL资源 758

STL文献 761

第21章 ANSI/ISO C++标准语言补充 763

21.1 简介 763

21.2 bool数据类型 763

21.3 static_cast运算符 765

21.4 const_cast运算符 766

21.5 reinterpret_cast运算符 768

21.6 名字空间 769

21.7 运行时类型信息(RTTI) 772

21.8 运算符关键字 776

21.9 explicit构造函数 777

21.10 mutable类成员 781

21.11 类成员指针(.*和->*) 783

21.12 多重继承与virtual基类 785

21.13 结束语 788

小结 788

术语 789

自测练习 790

自测练习答案 790

练习 790

附录A 运算符的优先级与结合律 793

附录B ASCII字符集 795

附录C 数值系统 796

附录D 有关C++的Internet与Web资源 806

参考文献 811