图书目录

第1章  C++语言基础 1

1.1  什么是C++ 2

1.1.1  C++的发展历史 2

1.1.2  C++的优点和缺点 2

1.2  搭建C++开发环境 3

1.2.1  Visual Studio 2017的新功能 3

1.2.2  安装Microsoft Visual Studio 2017 4

1.3  实践案例与上机指导 7

1.4  思考与练习 10

第2章  C++程序的基本结构 11

2.1  什么是面向对象 12

2.1.1  两种对象的产生方式 12

2.1.2  C++面向对象编程的流程 12

2.2  分析C++的程序结构 13

2.2.1  初识C++程序结构 13

2.2.2  C++程序的文件组织 15

2.3  必须遵循的编码规范 16

2.3.1  养成良好的编程风格 17

2.3.2  必须使用的注释 17

2.3.3  获取3个输入数字中的最大数值 18

2.4  输入和输出 19

2.4.1  标准输入与输出对象 19

2.4.2  一个使用I/O库的程序 20

2.4.3  使用using声明命名空间 22

2.5  实践案例与上机指导 23

2.6  思考与练习 24

第3章  C++语言的基础语法 25

3.1  标识符 26

3.1.1  C++中的保留字 26

3.1.2  标识符的命名规则 27

3.2  基本数据类型 27

3.2.1  数字运算型 28

3.2.2  逻辑运算型 31

3.2.3  字符型和字符串 32

3.3  标准类型库基础 34

3.3.1  标准库的string类 34

3.3.2  vector类型简介 34

3.3.3  迭代器简介 35

3.3.4  bitset类型初步 35

3.4  实践案例与上机指导 36

3.4.1  测试整个bitset对象 36

3.4.2  访问bitset对象中的位 36

3.5  思考与练习 37

第4章  变量和常量详解 39

4.1  变量 40

4.1.1  定义变量 40

4.1.2  声明变量 41

4.2  变量的作用域 42

4.2.1  作用域和生存期 42

4.2.2  作用域限定符 44

4.2.3  存储类型 45

4.2.4  C++变量初始化 46

4.3  常量 48

4.3.1  什么是常量 48

4.3.2  使用常量 48

4.4  实践案例与上机指导 50

4.5  思考与练习 51

第5章  运算符和表达式 53

5.1  运算符和表达式详解 54

5.1.1  赋值运算符和赋值表达式 54

5.1.2  算术运算符和算术表达式 55

5.1.3  比较运算符和比较表达式 57

5.1.4  逻辑运算符和逻辑表达式 58

5.1.5  ++/--运算符和表达式 59

5.1.6  位运算符和位表达式 60

5.1.7  求字节数运算符和求字节表达式 62

5.1.8  条件运算符和条件表达式 64

5.1.9  逗号运算符和逗号表达式 65

5.2  类型转换 66

5.2.1  使用隐式转换 67

5.2.2  使用显式转换 68

5.3  实践案例与上机指导 69

5.4  思考与练习 72

第6章  流程控制语句 73

6.1  语句和语句块 74

6.1.1  语句 74

6.1.2  语句块 74

6.2  顺序结构 76

6.3  选择结构 77

6.3.1  单分支结构语句 78

6.3.2  双分支结构语句 78

6.3.3  多分支结构语句 81

6.4  循环结构 84

6.4.1  循环语句的形式 84

6.4.2  for语句循环 85

6.4.3  使用while语句 87

6.4.4  使用do-while语句 88

6.5  实践案例与上机指导 89

6.6  思考与练习 90

第7章  指针 93

7.1  指针的基本概念 94

7.2  定义和识别指针 95

7.2.1  定义指针的基本方式 95

7.2.2  识别指针 95

7.2.3  指针的分类 96

7.3  指针的初始化 98

7.3.1  指针初始化时的类型 98

7.3.2  指针地址初始化 99

7.3.3  变量地址初始化 99

7.3.4  使用new分配内存单元 99

7.3.5  使用函数malloc分配内存单元 100

7.4  指针运算 102

7.4.1  算术运算 102

7.4.2  关系运算 104

7.5  指针的指针 106

7.6  实践案例与上机指导 108

7.6.1  指针赋值 108

7.6.2  使用“*”操作符 109

7.7  思考与练习 110

第8章  复合数据类型 113

8.1  使用数组 114

8.1.1  定义数组 114

8.1.2  高级数组 115

8.2  动态数组 117

8.2.1  在堆上分配空间的动态数组 117

8.2.2  在栈上分配空间的“假动态”数组 119

8.3  字符数组 121

8.3.1  定义字符数组 121

8.3.2  字符数组和字符串指针变量 122

8.4  数组初始化 123

8.4.1  定义时的初始化 123

8.4.2  初始化赋值语句 124

8.5  指针和数组 125

8.5.1  基本原理 125

8.5.2  指向数组的指针 126

8.5.3  指针数组 127

8.6  枚举 128

8.6.1  枚举基础 128

8.6.2  使用枚举 129

8.7  结构体 130

8.7.1  定义结构体 130

8.7.2  使用结构体 131

8.8  实践案例与上机指导 132

8.9  思考与练习 134

第9章  C++函数 135

9.1  C++函数基础 136

9.1.1  定义函数 136

9.1.2  函数分类 137

9.2  函数的参数和返回值 143

9.2.1  形参和实参 144

9.2.2  使用数组作函数参数 145

9.3  调用函数 146

9.3.1  单独调用 146

9.3.2  函数表达式 147

9.3.3  调用实参 147

9.3.4  参数传递 148

9.4  实践案例与上机指导 149

9.4.1  函数递归 149

9.4.2  指向函数的指针 151

9.5  思考与练习 152

第10章  输入、输出和文件操作 153

10.1  使用iostream对象 154

10.1.1  库iostream的作用 154

10.1.2  标准的I/O接口 154

10.1.3  文件I/O 156

10.1.4  字符串I/O 158

10.2  输出信息 159

10.2.1  预定义类型输出 159

10.2.2  自定义类型输出 160

10.3  输入信息 162

10.3.1  预定义类型输入 162

10.3.2  自定义类型输入 162

10.4  实践案例与上机指导 164

10.4.1  随机读写 164

10.4.2  二进制文件的读操作 165

10.5  思考与练习 166

第11章  面向对象之类和对象 167

11.1  类 168

11.1.1  声明类 168

11.1.2  类的属性 169

11.1.3  类的方法 170

11.1.4  构造函数 171

11.1.5  析构函数 173

11.1.6  静态成员 174

11.1.7  友元 175

11.1.8  使用修饰符 177

11.2  对象 178

11.2.1  定义对象 179

11.2.2  对象数组 179

11.2.3  对象指针 181

11.3  实践案例与上机指导 182

11.4  思考与练习 183

第12章  命名空间和作用域 185

12.1  初步认识命名空间 186

12.1.1  命名空间介绍 186

12.1.2  定义命名空间 187

12.2  使用命名空间 188

12.2.1  使用域限定符 189

12.2.2  使用using声明 190

12.2.3  使用别名 190

12.3  作用域 191

12.3.1  和作用域相关的概念 191

12.3.2  作用域的分类 192

12.4  实践案例与上机指导 195

12.5  思考与练习 196

第13章  类的继承和派生 197

13.1  继承与派生的基本概念 198

13.2  C++的继承机制 198

13.2.1  定义继承 198

13.2.2  派生类的继承方式 200

13.2.3  公有派生和私有派生 202

13.3  派生一个类 203

13.3.1  使用基类 203

13.3.2  使用派生 203

13.3.3  构造函数 206

13.3.4  析构函数 208

13.3.5  使用同名函数 210

13.3.6  使用同名属性 211

13.4  实践案例与上机指导 212

13.5  思考与练习 215

第14章  C++多态 217

14.1  什么是多态 218

14.2  宏多态 219

14.3  虚函数 220

14.3.1  虚函数基础 220

14.3.2  纯虚函数 222

14.4  抽象类 223

14.4.1  什么是抽象类 224

14.4.2  抽象类的派生 224

14.5  运算符重载和函数重载 226

14.5.1  运算符重载基础 226

14.5.2  重载一元运算符 226

14.5.3  重载二元运算符 227

14.5.4  参数类型不同的重载 229

14.6  实践案例与上机指导 230

14.7  思考与练习 232

第15章  异常处理 233

15.1  什么是异常处理 234

15.2  C++的异常处理 235

15.2.1  使用throw抛出异常 235

15.2.2  使用raise抛出异常 236

15.2.3  使用try…catch异常捕获 237

15.2.4  异常处理中的构造 和析构 239

15.3  实践案例与上机指导 240

15.4  思考与练习 242

第16章  图书馆管理系统 243

16.1  项目要求 244

16.2  需求分析 244

16.2.1  图书管理 244

16.2.2  会员管理 245

16.3  系统的具体实现 245

16.3.1  数据结构设计 246

16.3.2  系统主文件rent.cpp 246

16.3.3  菜单处理文件 mainfunction.h 247

16.3.4  函数定义文件 subfunction.h 247

16.3.5  菜单处理实现文件 mainfunction.cpp 248

16.3.6  功能函数实现文件 subfunction.cpp 252

习题答案 268