当前位置:首页 > 工业技术
完美C++教程
完美C++教程

完美C++教程PDF电子书下载

工业技术

  • 电子书积分:20 积分如何计算积分?
  • 作 者:(美)Walter Savitch著;熊歆斌译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2005
  • ISBN:7302111855
  • 页数:728 页
图书介绍:本书为那些希望掌握C++的经验丰富的程序员或者初学者提供了全部必要的工具,并特别强调了C++在基本编程技巧方面的品质和复杂性。其主要内容如下:完整和全面的可执行程序,以说明语言的特性。完整和全面的可执行程序,以说明语言的特性。全面介绍了标准模板库(STL)—它是理解C++语言的必需要素,因为它体现了这种语言丰富的功能性和多样性。关于统一建模语言(UML)和模式的介绍体现了软件工程领域与最新趋势。
上一篇:ACDSee图行天下下一篇:颐之时
《完美C++教程》目录
标签:教程

第1章 C++基础 1

1.1 C++简介 1

1.1.1 C++语言的起源 1

目录 1

1.1.2 C++与面向对象的程序设计 2

1.1.3 C++特点 2

1.1.4 C++术语 2

1.1.5 C++程序示例 2

1.2.1 标识符 4

1.2 变量、表达式及赋值语句 4

1.2.2 变量 5

1.2.3 赋值语句 7

1.2.4 更多赋值语句 9

1.2.5 赋值兼容性 10

1.2.6 文字常量 11

1.2.7 转义序列 12

1.2.8 名字常量 13

1.2.9 算术操作符和表达式 14

1.2.10 整数和浮点数除法 15

1.2.11 类型转换 17

1.2.12 自增和自减操作符 19

1.3 控制台输入/输出 21

1.3.1 使用cout输出 22

1.3.2 输出时的换行 22

1.3.3 格式化带小数点的数字 23

1.3.4 用cerr输出 25

1.3.5 用cin输入 25

注释 27

1.4 程序的风格 27

1.5 库与名字空间 28

1.5.1 库及include命令 28

1.5.2 名字空间 28

第2章 流程控制 34

2.1 布尔表达式 34

2.1.1 创建布尔表达式 34

2.1.2 布尔表达式求值 36

2.1.3 优先级原则 37

2.2.1 if-else语句 41

2.2 分支机制 41

2.2.2 复合语句 43

2.2.3 省略else 45

2.2.4 嵌套语句 45

2.2.5 多分支if-else语句 46

2.2.6 switch语句 47

2.2.7 枚举类型 50

2.2.8 条件操作符 50

2.3.1 while和do-while语句 51

2.3 循环 51

2.3.2 再谈增量、减量操作符 54

2.3.3 逗号操作符 56

2.3.4 for语句 57

2.3.5 break与continue语句 63

2.3.6 嵌套循环 66

第3章 函数基础 72

3.1 预定义的函数 72

3.1.1 返回值的预定义函数 72

3.1.2 预定义的void函数 76

3.1.3 随机数生成器 78

3.2 程序员定义的函数 81

3.2.1 定义返回值的函数 81

3.2.2 函数声明的替代形式 84

3.2.3 调用函数的函数 84

3.2.4 返回布尔值的函数 87

3.2.5 定义void函数 88

3.2.6 void函数中的return语句 89

3.2.8 main函数 91

3.2.7 前提条件和执行结果 91

3.2.9 递归函数 92

3.3 作用域规则 93

3.3.1 局部变量 93

3.3.2 过程抽象 95

3.3.3 全局常量与全局变量 96

3.3.4 语句块 98

3.3.5 嵌套作用域 99

3.3.6 for循环中声明的变量 99

4.1.1 传值调用参数 106

4.1 参数 106

第4章 参数与重载 106

4.1.2 引用调用参数初步 108

4.1.3 引用调用机制详解 111

4.1.4 常量引用参数 113

4.1.5 混合参数列表 114

4.2 重载与默认实参 121

4.2.1 重载简介 121

4.2.2 分辨重载的准则 125

4.2.3 默认实参 128

4.3 测试及调试函数 130

4.3.1 assert宏 130

4.3.2 与位程序和驱动程序 131

第5章 数组 138

5.1 数组简介 138

5.1.1 数组的声明和引用 138

5.1.2 内存中的数组 142

5.1.3 数组的初始化 144

5.2.1 作为函数实参的索引变量 146

5.2 函数中的数组 146

5.2.2 整个数组作为函数实参 147

5.2.3 const参数修饰词 150

5.2.4 返回一个数组的函数 152

5.3 用数组编程 157

部分填充的数组 157

5.4 多维数组 167

5.4.1 多维数组基础 167

5.4.2 多维数组参数 168

6.1 结构 182

第6章 结构和类 182

6.1.1 结构类型 184

6.1.2 结构作为函数参数 187

6.1.3 结构的初始化 190

6.2 类 193

6.2.1 定义类和成员函数 193

6.2.2 封装 198

6.2.3 公有和私有成员 199

6.2.4 取值和赋值函数 202

6.2.5 结构和类 206

第7章 构造函数及其他工具 211

7.1 构造函数 211

7.1.1 构造函数的定义 211

7.1.2 构造函数的显式调用 217

7.1.3 类类型成员变量 226

7.2 其他工具 229

7.2.1 const参数修饰符 229

7.2.2 内联函数 235

7.2.3 静态成员 236

7.2.4 嵌套类和局部类定义 240

7.3 向量——标准模板库预览 240

7.3.1 向量基础 241

7.3.2 效率问题 244

第8章 操作符重载、友元和引用 249

8.1 基本操作符重载 249

8.1.1 重载基础 249

8.1.2 返回常量类型 256

8.1.3 重载一元操作符 259

8.1.4 作为成员函数的操作符重载 260

8.1.5 重载函数调用符() 263

8.2 友元函数和自动类型转换 263

8.2.1 构造函数的自动类型转换 263

8.2.2 友元函数 265

8.2.3 友元类 269

8.3 引用和其他操作符重载 269

8.3.1 引用 270

8.3.2 重载“<<”和“>>” 271

8.3.4 重载自增和自减操作符 280

8.3.3 赋值操作符 280

8.3.5 重载数组操作符[ ] 283

8.3.6 基于左值和右值的重载 285

第9章 字符串 291

9.1 数组类型的字符串 291

9.1.1 C字符串值和C字符串变量 291

9.1.2 <cstring>库中的其他函数 296

9.1.3 C字符串的输入和输出 299

9.2 字符操作工具 301

9.2.1 字符输入/输出 301

9.2.2 成员函数get和put 302

9.2.3 成员函数putback、peek和ignore 307

9.2.4 字符操作函数 309

9.3 标准string类 312

9.3.1 标准类string简介 312

9.3.2 string类的输入/输出 314

9.3.3 使用string类进行字符串处理 319

9.3.4 string类对象和C字符串的相互转换 326

10.1 指针 334

第10章 指针和动态数组 334

10.1.1 指针变量 335

10.1.2 内存管理基础 341

10.1.3 动态变量和自动变量 344

10.1.4 指针的应用 348

10.2 动态数组 348

10.2.1 数组变量和指针变量 348

10.2.2 创建和使用动态数组 350

10.2.3 指针运算 355

10.2.4 多维动态数组 356

10.3.1 ->操作符 358

10.3 类、指针和动态数组 358

10.3.2 this指针 359

10.3.3 重载赋值操作符 360

10.3.4 析构函数 369

10.3.5 复制构造函数 370

11.1 分散编译 378

11.1.1 封装回顾 378

第11章 分散编译和名字空间 378

11.1.2 头文件和实现文件 379

11.1.3 使用#ifndef 388

11.2 名字空间 391

11.2.1 名字空间和using命令 391

11.2.2 创建一个名字空间 393

11.2.3 using声明 396

11.2.4 限定名字 397

11.2.5 未命名的名字空间 401

11.2.6 嵌套名字空间 408

12.1 I/O流 415

第12章 流和文件I/O操作 415

12.1.1 文件I/O 416

12.1.2 向文件中添加内容 419

12.1.3 字符I/O 425

12.1.4 文件末尾检查 425

12.2 流I/O的工具 429

12.2.1 文件名作为输入 429

12.2.2 使用流函数对输出格式化 430

12.2.3 操作算子(Manipulators) 433

12.2.5 其他的输出流成员函数 434

12.2.4 保存设定的标记 434

12.3 流的层次:继承的简要介绍 441

12.4 随机文件存取 446

第13章 递归 455

13.1 递归void函数 455

13.1.1 一个递归调用的跟踪 458

13.1.2 递归的进一步认识 460

13.1.3 递归调用的栈 463

13.1.4 递归与迭代的比较 464

有返回值的递归函数的一般形式 466

13.2 有返回值的递归函数 466

13.3.1 递归设计技术 470

13.3 按递归的方式思考问题 470

13.3.2 二分查找 472

13.3.3 编码 474

13.3.4 检查递归的正确性 476

13.3.5 效率 477

14.1 继承基础 486

14.1.1 派生类 486

第14章 继承 486

14.1.2 派生类的构造函数 495

14.1.3 protected限定词 498

14.1.4 成员函数的重定义 501

14.1.5 重定义与重载 502

14.1.6 访问重定义函数的基类版本 503

14.1.7 不可继承的函数 504

14.2 使用继承进行编程 505

14.2.1 派生类中的赋值操作符和复制构造函数 505

14.2.2 派生类的析构函数 506

14.2.3 保护继承和私有继承 518

14.2.4 多继承 519

第15章 多态与虚函数 524

15.1 虚函数基础 524

15.1.1 后绑定 524

15.1.2 C++中的虚函数 525

15.1.3 抽象类和纯虚函数 532

15.2 指针和虚函数 535

15.2.1 虚函数和扩展类型兼容性 535

15.2.2 向下转换和向上转换 541

15.2.3 C++是如何实现虚函数 543

第16章 模板 546

16.1 函数模板 546

定义函数模板的语法 547

16.2 类模板 558

16.2.1 类模板的语法 558

16.2.2 C++中的模板类vector和basic_stirng 568

16.3 模板和继承 568

17.1 节点和链表 579

第17章 链式数据结构 579

17.1.1 节点 580

17.1.2 链表 584

17.1.3 向链表头插入一个节点 585

17.1.4 向链表中插入或移除节点 589

17.1.5 搜索链表 592

17.2 链表的应用 599

17.3 迭代器 611

17.3.2 迭代器类 612

17.3.1 指针作为迭代器 612

17.4 树 619

树的性质 619

第18章 异常处理 636

18.1 异常处理基础 636

18.1.1 异常处理的一个样例 637

18.1.2 自定义异常类 644

18.1.3 多重抛出和捕获 646

18.1.4 在函数中抛出异常 649

18.1.5 异常说明 651

18.2.1 抛出异常的时机 654

18.2 异常处理的编程技术 654

18.2.2 异常类的层次结构 656

18.2.3 测试可用内存 657

18.2.4 再次抛出异常 657

第19章 标准模板库 660

19.1 迭代器 661

19.1.1 迭代器基础 661

19.1.2 迭代器的种类 665

19.1.3 常量和可变迭代器 669

19.1.4 反向迭代器 670

19.1.5 其他几种迭代器 672

19.2 容器 673

19.2.1 连续容器 673

19.2.2 容器适配器栈和队列 678

19.2.3 关联容器集合和映射 681

19.2.4 效率 685

19.3 泛型算法 685

19.3.1 运行时间和Big-O记法 686

19.3.2 容器访问运行时间 689

19.3.3 不改变序列的算法 690

19.3.4 改变序列的算法 694

19.3.5 集合算法 695

19.3.6 排序算法 697

第20章 模式和UML 703

20.1 模式 703

20.1.1 适配器模式 704

20.1.2 模型-视图-控制器模式 704

20.1.3 排序模式的效率 710

20.1.4 模式形式体系 712

20.2 UML 713

20.2.1 UML的历史 713

20.2.2 UML的类图表 714

20.2.3 类的相互作用 714

附录1 C++关键字 718

附录2 操作符优先级 719

附录3 ASCII字符集 721

附录4 一些库函数 722

附录5 旧的和新的头文件 728

返回顶部