目录
第 一部分 C++入门
第 1章 编写第 一个程序 2
1.1 使用C++ 2
1.2 寻找编译器 3
1.3 编译和链接源代码 5
1.4 创建您的第 一个程序 5
1.5 总结 6
1.6 问与答 7
1.7 作业 7
1.7.1 测验 7
1.7.2 答案 8
1.7.3 练习 8
第 2章 程序的组成部分 9
2.1 使用C++的原因 9
2.1.1 编程风格 10
2.1.2 C++和面向对象编程 11
2.2 程序的组成部分 12
2.2.1 预处理器编译指令 12
2.2.2 源代码行 13
2.3 注释 13
2.4 函数 14
2.5 总结 16
2.6 问与答 16
2.7 作业 17
2.7.1 测验 17
2.7.2 答案 18
2.7.3 练习 18
第3章 创建变量和常量 19
3.1 变量是什么 19
3.1.1 在内存中存储变量 20
3.1.2 无符号变量和带符号变量 21
3.1.3 变量类型 21
3.2 定义变量 22
3.3 给变量赋值 23
3.4 使用类型定义 24
3.5 常量 25
3.5.1 定义常量 26
3.5.2 枚举常量 26
3.6 总结 26
3.7 问与答 27
3.8 作业 27
3.8.1 测验 27
3.8.2 答案 28
3.8.3 练习 28
第4章 使用表达式、语句和运算符 29
4.1 语句 29
4.1.1 空白 29
4.1.2 复合语句 30
4.2 表达式 30
4.3 运算符 31
4.3.1 赋值运算符 31
4.3.2 数学运算符 31
4.3.3 组合运算符 32
4.3.4 递增和递减运算符 32
4.3.5 前缀运算符和后缀运算符 32
4.3.6 运算符优先级 34
4.3.7 关系运算符 36
4.4 if-else条件语句 36
4.4.1 else子句 37
4.4.2 复合if语句 37
4.5 逻辑运算符 39
4.5.1 与运算符 39
4.5.2 或运算符 39
4.5.3 非运算符 39
4.5.4 关系运算符和
逻辑运算符的优先级 40
4.6 棘手的表达式值 40
4.7 总结 40
4.8 问与答 41
4.9 作业 41
4.9.1 测验 41
4.9.2 答案 42
4.9.3 练习 42
第5章 调用函数 43
5.1 函数是什么 43
5.2 声明和定义函数 43
5.3 在函数中使用变量 45
5.3.1 局部变量 45
5.3.2 全局变量 46
5.4 函数参数 47
5.5 从函数返回值 48
5.6 默认函数参数 50
5.7 函数重载 51
5.8 总结 52
5.9 问与答 53
5.10 作业 53
5.10.1 测验 53
5.10.2 答案 54
5.10.3 练习 54
第6章 控制程序流程 55
6.1 循环 55
6.2 while循环 55
6.2.1 退出循环 56
6.2.2 跳到下一次循环 57
6.3 do-while循环 58
6.4 for循环 59
6.4.1 高级for循环 61
6.4.2 嵌套循环 61
6.5 switch语句 62
6.6 总结 64
6.7 问与答 64
6.8 作业 65
6.8.1 测验 65
6.8.2 答案 65
6.8.3 练习 66
第7章 使用数组和字符串存储信息 67
7.1 数组是什么 67
7.2 写入时超过数组末尾 69
7.3 初始化数组 69
7.4 多维数组 70
7.4.1 初始化多维数组 71
7.4.2 内存简介 72
7.5 字符数组 72
7.6 复制字符串 74
7.7 总结 75
7.8 问与答 75
7.9 作业 75
7.9.1 测验 75
7.9.2 答案 76
7.9.3 练习 76
第 二部分 类
第8章 创建基本类 78
8.1 类型是什么 78
8.2 创建新类型 78
8.3 类和成员 79
8.3.1 声明类 79
8.3.2 创建对象 80
8.4 访问类成员 80
8.5 实现成员函数 81
8.6 创建和删除对象 83
8.6.1 默认构造函数 84
8.6.2 编译器提供的构造函数 84
8.7 总结 86
8.8 问与答 87
8.9 作业 87
8.9.1 测验 87
8.9.2 答案 87
8.9.3 练习 88
第9章 高级类 89
9.1 const成员函数 89
9.2 接口和实现 90
9.3 组织类声明和函数定义 90
9.4 内联实现 90
9.5 将其他类用作成员数据的类 92
9.6 总结 96
9.7 问与答 96
9.8 作业 96
9.8.1 测验 96
9.8.2 答案 97
9.8.3 练习 97
第三部分 内存管理
第 10章 创建指针 100
10.1 理解指针及其用途 100
10.1.1 在指针中存储地址 102
10.1.2 间接运算符(间接地
使用指针) 103
10.1.3 指针、地址和变量 104
10.1.4 使用指针操作数据 105
10.1.5 查看存储在指针中的
地址 105
10.1.6 为何使用指针 107
10.2 栈和堆 107
10.2.1 使用关键字new 108
10.2.2 使用关键字delete 109
10.2.3 避免内存泄露 110
10.3 总结 111
10.4 问与答 111
10.5 作业 111
10.5.1 测验 111
10.5.2 答案 112
10.5.3 练习 112
第 11章 开发高级指针 113
11.1 在堆中创建对象 113
11.2 删除对象 113
11.3 使用指针访问数据成员 114
11.4 堆中的数据成员 115
11.5 this指针 117
11.6 悬摆指针 118
11.7 const指针 118
11.8 const指针和const成员函数 119
11.9 总结 120
11.10 问与答 121
11.11 作业 121
11.11.1 测验 121
11.11.2 答案 121
11.11.3 练习 122
第 12章 创建引用 123
12.1 什么是引用 123
12.2 创建引用 123
12.3 将地址运算符用于引用 124
12.4 可引用的目标 126
12.5 空指针和空引用 127
12.6 按引用传递函数参数 127
12.6.1 使用指针实现swap() 128
12.6.2 使用引用实现swap() 129
12.7 理解函数头和原型 130
12.8 返回多个值 130
12.9 总结 133
12.10 问与答 133
12.11 作业 133
12.11.1 测验 133
12.11.2 答案 134
12.11.3 练习 134
第 13章 高级引用和指针 135
13.1 按引用传递以提高效率 135
13.2 传递const指针 137
13.3 作为指针替代品的引用 139
13.4 什么情况下使用引用以及
什么情况下使用指针 141
13.5 不要返回不在作用域内的
引用 141
13.6 返回指向堆中对象的引用 142
13.7 谁拥有指针 143
13.8 总结 144
13.9 问与答 144
13.10 作业 144
13.10.1 测验 144
13.10.2 答案 145
13.10.3 练习 145
第四部分 高级C++
第 14章 高级函数 148
14.1 重载成员函数 148
14.2 使用默认值 150
14.3 初始化对象 151
14.4 复制构造函数 152
14.5 总结 155
14.6 问与答 155
14.7 作业 155
14.7.1 测验 156
14.7.2 答案 156
14.7.3 练习 156
第 15章 运算符重载 157
15.1 重载运算符 157
15.1.1 编写递增方法 158
15.1.2 重载后缀运算符 160
15.1.3 重载加法运算符 161
15.1.4 对运算符重载的限制 162
15.1.5 赋值运算符 163
15.2 转换运算符 165
15.3 总结 167
15.4 问与答 168
15.5 作业 168
15.5.1 测验 168
15.5.2 答案 168
15.5.3 练习 169
第五部分 继承和多态
第 16章 使用继承扩展类 172
16.1 什么是继承 172
16