目录


第1章绪论

1.1编程语言的发展

1.2C++语言简介

1.3面向对象的程序设计方法

1.4第一个C++程序

小结

习题

第2章基本数据类型和运算符

2.1基本概念

2.1.1程序实例

2.1.2C++字符集

2.1.3C++关键字

2.1.4标识符

2.1.5程序注释

2.2基本数据类型

2.2.1整数类型

2.2.2浮点类型

2.2.3字符类型

2.2.4布尔类型

2.3变量和常量

2.3.1变量

2.3.2常量

2.4简单的输入和输出

2.5C++运算符和表达式

2.5.1赋值运算符和赋值表达式

2.5.2算术运算符和算术表达式

2.5.3关系运算符和关系表达式

2.5.4逻辑运算符和逻辑表达式

2.5.5位运算符

2.5.6逗号运算符和逗号表达式

2.5.7条件运算符和条件表达式

2.5.8sizeof运算符

2.5.9其他运算符

2.6数据类型转换

2.7缩窄转换

小结

习题

第3章控制语句

3.1选择结构

3.1.1ifelse选择语句

3.1.2嵌套的ifelse语句

3.1.3ifelse if语句

3.1.4switch语句

3.2循环结构

3.2.1while循环语句

3.2.2dowhile循环语句

3.2.3for循环语句

3.2.4嵌套的循环语句

3.3其他流控制语句

3.3.1break语句和continue语句

3.3.2goto语句

小结

习题





第4章复合数据类型

4.1数组

4.1.1数组的定义和初始化

4.1.2使用数组

4.1.3使用基于范围的for循环语句访问数组元素

4.1.4字符数组和字符串

4.2指针

4.2.1定义和使用指针

4.2.2指针和数组

4.2.3数组指针和指针数组

4.2.4使用操作符new和delete进行动态存储分配

4.3引用

4.3.1C++98中的引用

4.3.2左值和右值

4.3.3左值引用和右值引用

4.4枚举和结构

4.4.1枚举

4.4.2结构

小结

习题

第5章函数

5.1定义和调用函数

5.1.1函数的定义

5.1.2函数的调用

5.1.3函数原型

5.2传递参数

5.2.1传值传递

5.2.2引用传递

5.3局部变量和全局变量

5.4函数调用的实现

5.5内联函数

5.6递归函数

5.7参数的默认值

5.8指针函数和函数指针

5.8.1指针函数

5.8.2函数指针

5.8.3用函数指针作为函数的参数

5.9函数重载

5.10函数模板

5.11lambda函数

5.11.1定义和使用lambda函数

5.11.2lambda函数的捕获列表

5.11.3lambda函数作为函数的参数

5.12具有可变长参数的函数

小结

习题

第6章类和对象(上)

6.1面向对象程序设计概述

6.2创建类

6.2.1定义类

6.2.2类的实现

6.3创建和使用对象

6.4类成员的访问控制

6.4.1类的公有成员

6.4.2类的私有成员

6.4.3类的保护成员

6.5内联的成员函数

6.6构造函数

6.6.1定义类的构造函数

6.6.2默认的构造函数

6.6.3带默认参数值的构造函数

6.7拷贝构造函数

6.7.1定义类的拷贝构造函数

6.7.2默认的拷贝构造函数与对象的浅拷贝问题

6.8析构函数

6.9移动构造函数

6.10程序实例

小结

习题

第7章类和对象(下)

7.1类的静态成员

7.1.1静态数据成员

7.1.2静态函数成员

7.2对象指针

7.3动态创建

7.3.1动态创建对象

7.3.2动态创建对象数组

7.4类作用域

7.4.1类成员具有类作用域

7.4.2具有类作用域的数据成员被局部变量屏蔽

7.5this指针

7.6类的组合

7.7常对象和类的常成员

7.7.1常对象

7.7.2常数据成员

7.7.3const成员函数

7.8类模板

7.9友元

7.9.1友元函数

7.9.2友元类

7.10使用function对象调用类的实例成员函数

7.11string类

7.11.1构造字符串

7.11.2常用的字符串操作

小结

习题

第8章类的继承

8.1基类和派生类

8.2定义派生类

8.3继承方式与访问权限

8.4构造派生类对象

8.4.1派生类对象的结构

8.4.2派生类的构造函数

8.5成员覆盖

8.6实例学习——图形类家族

8.7多重继承

8.7.1多重继承的实现

8.7.2多重继承引发的二义性问题

8.8虚基类

8.9对象类型转换

小结

习题

第9章多态

9.1什么是多态

9.2虚函数和动态绑定

9.3纯虚函数和抽象类

9.4限定符override和final

9.4.1限定符override

9.4.2限定符final

9.5编译期多态——运算符重载

9.5.1什么是运算符重载

9.5.2用类的成员函数实现运算符重载

9.5.3用类的友元函数实现运算符重载

9.6拷贝赋值运算符

9.7移动赋值运算符

9.8强制移动

9.9运行时类型识别

9.9.1dynamic_cast操作符

9.9.2typeid操作符和type_info类

小结

习题

第10章标准模板库

10.1标准模板库简介

10.2vector容器

10.3list容器

10.4map容器

10.5算法

10.6容器、迭代器和算法之间的关系

小结

习题

第11章程序结构、预处理和命名空间

11.1多文件结构的源程序

11.2文件间的信息共享

11.2.1头文件

11.2.2关键字extern

11.2.3使用关键字static避免同名冲突

11.2.4函数的声明

11.2.5类的声明

11.3预处理

11.3.1#include指令

11.3.2#define指令

11.3.3条件预处理指令

11.3.4使用条件预处理指令避免重复包含

11.4命名空间

小结

习题

第12章输入和输出

12.1什么是输入/输出流

12.2输入/输出流类

12.2.1预定义的流对象

12.2.2插入运算符和提取运算符

12.2.3格式化标志和设置格式化标志的函数

12.2.4I/O格式操作符

12.2.5控制输入/输出格式的函数

12.2.6常用的I/O函数

12.3磁盘文件的输入/输出

12.3.1打开文件

12.3.2数据的存储格式和文件的打开模式

12.3.3文件的输入/输出

12.3.4文件指针

小结

习题

第13章异常处理

13.1抛出异常

13.2捕获和处理异常

13.3异常的传递途径

13.4异常类

小结

习题

第14章Windows编程基础

14.1事件驱动机制和Windows SDK编程

14.2MFC

14.2.1一个简单的MFC应用程序

14.2.2MFC简介

14.2.3MFC程序结构分析

14.3消息映射机制

14.3.1Windows消息

14.3.2MFC消息映射机制

14.4Windows程序实例

小结

习题

附录A

参考文献