国外经典计算机教程,完美C++教程(国外经典教材计算机科学与技术)

第1章C++基础1

1.1C++简介1

1.1.1C++语言的起源1

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

1.1.3C++特点2

1.1.4C++术语2

1.1.5C++程序示例2

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

1.2.1标识符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

1.4程序的风格27

注释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分支机制41

2.2.1ifelse语句41

2.2.2复合语句43

2.2.3省略else45

2.2.4嵌套语句45

2.2.5多分支ifelse语句46

2.2.6switch语句47

2.2.7枚举类型50

2.2.8条件操作符50

2.3循环51

2.3.1while和dowhile语句51

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

2.3.3逗号操作符56

2.3.4for语句57

2.3.5break与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.6void函数中的return语句89

3.2.7前提条件和执行结果91

3.2.8main函数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.6for循环中声明的变量99

第4章参数与重载106

4.1参数106

4.1.1传值调用参数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.1assert宏130

4.3.2占位程序和驱动程序131

第5章数组138

5.1数组简介138

5.1.1数组的声明和引用138

5.1.2内存中的数组142

5.1.3数组的初始化144

5.2函数中的数组146

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

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

5.2.3const参数修饰词150

5.2.4返回一个数组的函数152

5.3用数组编程157

部分填充的数组157

5.4多维数组167

5.4.1多维数组基础167

5.4.2多维数组参数168

第6章结构和类182

6.1结构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.1const参数修饰符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.3赋值操作符280

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

8.3.5重载数组操作符[ ]283

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

第9章字符串291

9.1数组类型的字符串291

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

9.1.2库中的其他函数296

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

9.2字符操作工具301

9.2.1字符输入/输出301

9.2.2成员函数get和put302

9.2.3成员函数putback、peek和ignore307

9.2.4字符操作函数309

9.3标准string类312

9.3.1标准类string简介312

9.3.2string类的输入/输出314

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

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

第10章指针和动态数组334

10.1指针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类、指针和动态数组358

10.3.1->操作符358

10.3.2this指针359

10.3.3重载赋值操作符360

10.3.4析构函数369

10.3.5复制构造函数370

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

11.1分散编译378

11.1.1封装回顾378

11.1.2头文件和实现文件379

11.1.3使用#ifndef388

11.2名字空间391

11.2.1名字空间和using命令391

11.2.2创建一个名字空间393

11.2.3using声明396

11.2.4限定名字397

11.2.5未命名的名字空间401

11.2.6嵌套名字空间408

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

12.1I/O流415

12.1.1文件I/O416

12.1.2向文件中添加内容419

12.1.3字符I/O425

12.1.4文件末尾检查425

12.2流I/O的工具429

12.2.1文件名作为输入429

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

12.2.3操作算子(Manipulators)433

12.2.4保存设定的标记434

12.2.5其他的输出流成员函数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

13.2有返回值的递归函数466

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

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

13.3.1递归设计技术470

13.3.2二分查找472

13.3.3编码474

13.3.4检查递归的正确性476

13.3.5效率477

第14章继承486

14.1继承基础486

14.1.1派生类486

14.1.2派生类的构造函数495

14.1.3protected限定词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.2C++中的虚函数525

15.1.3抽象类和纯虚函数532

15.2指针和虚函数535

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

15.2.2向下转换和向上转换541

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

第16章模板546

16.1函数模板546

定义函数模板的语法547

16.2类模板558

16.2.1类模板的语法558

16.2.2C++中的模板类vector和basic_stirng568

16.3模板和继承568

第17章链式数据结构579

17.1节点和链表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.1指针作为迭代器612

17.3.2迭代器类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异常处理的编程技术654

18.2.1抛出异常的时机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章模式和UML703

20.1模式703

20.1.1适配器模式704

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

20.1.3排序模式的效率710

20.1.4模式形式体系712

20.2UML713

20.2.1UML的历史713

20.2.2UML的类图表714

20.2.3类的相互作用714

附录1C++关键字718

附录2操作符优先级719

附录3ASCII字符集721

附录4一些库函数722

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值