图书目录

第1章  快速步入C++的世界 001

1.1  C++语言概述 001

1.1.1  C语言与C++语言的关系 001

1.1.2  C++语言的特点 001

1.1.3  C++的发展历程 002

1.2  搭建C++开发环境 002

1.2.1  安装Visual Studio 2019 002

1.2.2  启动Visual Studio 2019 004

1.2.3  使用Visual Studio 2019建立C++程序 005

1.3  C++的编译过程 009

1.4  新手疑难问题解答 010

1.5  实战训练 010

第2章  C++语言基础 011

2.1  C++基本语法 011

2.1.1  C++中的基本概念 011

2.1.2  C++中的分号和空格 011

2.1.3  C++中的语句块 012

2.1.4  C++中的标识符 012

2.1.5  C++中的关键字 013

2.2  C++程序的结构 013

2.2.1  第一个C++程序 013

2.2.2  #include指令 014

2.2.3  iostream标准库 015

2.2.4  命名空间 016

2.2.5  函数main() 016

2.2.6  关于注释 017

2.3  C++数据类型 017

2.3.1  整型数据类型 017

2.3.2  浮点型数据类型 019

2.3.3  字符型数据类型 019

2.3.4  布尔型数据类型 021

2.3.5  自定义数据类型 021

2.4  数据的输入与输出 022

2.4.1  认识控制台 022

2.4.2  C++语言中的流 023

2.4.3  认识cout与cin语句 024

2.4.4  流输出格式的控制 026

2.5  新手疑难问题解答 029

2.6  实战训练 030

第3章  使用常量和变量 031

3.1  使用常量 031

3.1.1  认识常量 031

3.1.2  整型常量 032

3.1.3  实型常量 032

3.1.4  字符常量 033

3.1.5  字符串常量 034

3.1.6  其他常量 035

3.2  自定义常量 035

3.2.1  使用#define预处理器 036

3.2.2  使用const关键字 037

3.3  使用变量 038

3.3.1  认识变量 038

3.3.2  变量的声明 039

3.3.3  变量的赋值 040

3.3.4  变量的作用域 041

3.3.5  整型变量 044

3.3.6  实型变量 045

3.3.7  字符型变量 046

3.3.8  布尔型变量 047

3.4  新手疑难问题解答 047

3.5  实战训练 048

第4章  使用运算符和表达式 049

4.1  认识运算符 049

4.1.1  算术运算符 049

4.1.2  自增、自减运算符 050

4.1.3  关系运算符 051

4.1.4  逻辑运算符 052

4.1.5  赋值运算符 054

4.1.6  位运算符 055

4.1.7  杂项运算符 056

4.1.8  逗号运算符 057

4.2  优先级与结合性 058

4.2.1  运算符优先级 058

4.2.2  运算符结合性 059

4.3  使用表达式 061

4.3.1  算术表达式 061

4.3.2  赋值表达式 063

4.3.3  关系表达式 064

4.3.4  逻辑表达式 065

4.3.5  位运算表达式 066

4.3.6  条件表达式 067

4.3.7  逗号表达式 068

4.4  表达式中的类型转换 068

4.4.1  自动转换 068

4.4.2  强制转换 070

4.5  新手疑难问题解答 071

4.6  实战训练 071

第5章  程序流程控制结构 072

5.1  顺序结构 072

5.2  选择结构 073

5.2.1  if语句 073

5.2.2  if…else语句 074

5.2.3  嵌套if…else语句 075

5.2.4  switch语句 078

5.2.5  嵌套switch语句 080

5.3  循环结构 081

5.3.1  循环结构类型 081

5.3.2  循环控制语句 091

5.4  新手疑难问题解答 096

5.5  实战训练 097

第6章  函数与函数调用 098

6.1  函数的概述 098

6.1.1  函数的概念 098

6.1.2  函数的定义 098

6.1.3  函数的声明 100

6.2  函数参数及返回值 101

6.2.1  空函数 101

6.2.2  形参与实参 102

6.2.3  函数的默认参数 102

6.2.4  参数的传递方式 103

6.2.5  声明返回值类型 105

6.2.6  函数的返回值 107

6.3  函数的调用 109

6.3.1  函数调用的形式 109

6.3.2  函数调用的方式 109

6.3.3  函数的传值调用 111

6.3.4  函数的嵌套调用 111

6.3.5  函数的递归调用 113

6.4  变量的作用域 116

6.4.1  自动变量 116

6.4.2  静态局部变量 116

6.4.3  外部变量 117

6.4.4  寄存器变量 118

6.5  内联函数 118

6.6  新手疑难问题解答 119

6.7  实战训练 120

第7章  数值数组与字符数组 121

7.1  数组概述 121

7.1.1  认识数组 121

7.1.2  数组的特点 122

7.2  一维数组 122

7.2.1  定义一维数组 122

7.2.2  初始化一维数组 123

7.2.3  一维数组的应用 125

7.3  二维数组 127

7.3.1  定义二维数组 127

7.3.2  初始化二维数组 128

7.3.3  二维数组的应用 129

7.4  多维数组 131

7.5  字符数组 131

7.5.1  字符数组的定义 131

7.5.2  初始化字符数组 132

7.5.3  字符数组的应用 133

7.5.4  字符数组的输出 134

7.5.5  字符数组的输入 135

7.6  新手疑难问题解答 137

7.7  实战训练 138

第8章  C++中的指针和引用 139

8.1  指针与变量 139

8.1.1  指针变量的定义 139

8.1.2  指针变量的初始化 140

8.1.3  指针变量的引用 142

8.1.4  指针变量的运算 143

8.2  指针与函数 145

8.2.1  指针传送到函数中 145

8.2.2  返回值为指针的函数 146

8.2.3  指向函数的指针 147

8.3  指针与数组 148

8.3.1  数组元素的指针 149

8.3.2  通过指针引用数组元素 149

8.3.3  指向数组的指针变量作为函数参数 152

8.3.4  通过指针对多维数组进行引用 156

8.4  指针与字符串 160

8.4.1  指向字符串的指针变量 160

8.4.2  使用字符指针作为函数参数 161

8.5  指针数组和多重指针 163

8.5.1  指针数组 163

8.5.2  指向指针的指针 164

8.6  C++中的引用 166

8.6.1  认识C++中的引用 166

8.6.2  通过引用传递函数参数 166

8.6.3  把引用作为返回值 167

8.7  新手疑难问题解答 168

8.8  实战训练 168

第9章  结构体、共用体和枚举 170

9.1  结构体概述 170

9.1.1  结构体的概念 170

9.1.2  结构体类型的定义 171

9.1.3  结构体变量的定义 172

9.1.4  结构体变量的初始化 173

9.1.5  结构体变量成员的引用 174

9.2  结构体数组 175

9.2.1  结构体数组的定义 175

9.2.2  结构体数组的初始化 175

9.2.3  结构体数组的引用 176

9.3  结构体与函数 177

9.3.1  结构体变量作为函数参数 177

9.3.2  结构体变量的成员作为函数参数 178

9.3.3  结构体变量作为函数返回值 179

9.4  结构体与指针 180

9.4.1  指向结构体变量的指针 180

9.4.2  指向结构体数组的指针 182

9.4.3  结构体指针作为函数参数 183

9.5  共用体数据类型 184

9.5.1  共用体类型的声明 184

9.5.2  共用体变量的定义 184

9.5.3  共用体变量的初始化 186

9.5.4  共用体变量的引用 186

9.6  枚举数据类型 187

9.6.1  枚举类型的定义 187

9.6.2  枚举类型变量的定义 188

9.7  新手疑难问题解答 189

9.8  实战训练 190

第10章  C++中的类和对象 192

10.1  C++类 192

10.1.1  类的概述与定义 192

10.1.2  类的实现方法 193

10.1.3  类对象的声明 195

10.1.4  类对象的引用 195

10.2  类访问修饰符 198

10.2.1  公有成员 199

10.2.2  私有成员 200

10.2.3  保护成员 201

10.3  构造函数 201

10.3.1  构造函数的定义 202

10.3.2  带参数的构造函数 203

10.3.3  使用参数初始化表 204

10.3.4  构造函数的重载 205

10.3.5  构造函数的默认参数 206

10.3.6  复制构造函数 207

10.4  析构函数 209

10.4.1  认识析构函数 209

10.4.2  析构函数的调用 210

10.5  C++类成员 211

10.5.1  内联成员函数 211

10.5.2  静态类成员 212

10.5.3  常量类成员 214

10.5.4  隐式/显式的this指针 216

10.6  类对象数组 218

10.6.1  类对象数组的调用 218

10.6.2  类对象数组和默认构造函数 219

10.6.3  类对象数组和析构函数 220

10.7  友元 221

10.7.1  友元函数 221

10.7.2  友元类 222

10.8  新手疑难问题解答 223

10.9  实战训练 224

第11章  C++中的继承与派生 225

11.1  C++中的继承 225

11.1.1  什么是继承 225

11.1.2  基类与派生类 226

11.1.3  基类中的构造函数 228

11.1.4  继承中的构造顺序 231

11.2  C++继承方式 233

11.2.1  公有继承 233

11.2.2  私有继承 234

11.2.3  保护继承 235

11.3  派生类存取基类成员 237

11.3.1  私有成员的存取 237

11.3.2  继承与静态成员 238

11.4  多重继承 239

11.4.1  声明多继承 240

11.4.2  多继承下的构造函数 240

11.5  新手疑难问题解答 242

11.6  实战训练 242

第12章  C++中的多态与重载 244

12.1 多态概述 244

12.1.1  认识多态行为 244

12.1.2  实现多态性 244

12.2  虚函数与虚函数表 246

12.2.1  虚函数的作用 246

12.2.2  动态绑定和静态绑定 248

12.2.3  定义纯虚函数 249

12.2.4  认识虚函数表 251

12.3  抽象类与多重继承 252

12.3.1  抽象类的作用 253

12.3.2  抽象类的多重继承 253

12.4  认识运算符的重载 254

12.4.1  什么是运算符重载 255

12.4.2  运算符重载的形式 255

12.4.3  可重载的运算符 258

12.5  常用运算符的重载 259

12.5.1  “<”运算符重载 259

12.5.2  “+”运算符重载 260

12.5.3  “=”赋值运算符重载 261

12.5.4  前置运算符重载 263

12.5.5  后置运算符重载 264

12.5.6  插入运算符重载 265

12.5.7  折取运算符重载 266

12.6  新手疑难问题解答 268

12.7  实战训练 268

第13章  C++中模板的应用 269

13.1  函数模板 269

13.1.1  函数模板的用途 269

13.1.2  函数模板的定义 270

13.1.3  函数模板的调用 271

13.1.4  函数模板的重载 273

13.2  类模板 274

13.2.1  类模板的定义 274

13.2.2  类模板的实例化 277

13.2.3  类模板的使用 277

13.3  模板的特化 279

13.3.1  函数模板的特化 280

13.3.2  类模板的特化 281

13.4  新手疑难问题解答 282

13.5  实战训练 283

第14章  容器、算法与迭代器 284

14.1  认识容器 284

14.2  顺序容器 285

14.2.1  向量类模板 285

14.2.2  链表类模板 290

14.2.3  双端队列类模板 296

14.3  关联容器 297

14.3.1  映射类模板 298

14.3.2  集合类模板 301

14.3.3  多重集合类模板 302

14.4  容器适配器 303

14.4.1  栈类 303

14.4.2  队列类 304

14.4.3  优先级队列类 305

14.5  C++中的算法 307

14.5.1  数据编辑算法 307

14.5.2  查找算法 308

14.5.3  比较算法 310

14.5.4  排序相关算法 311

14.6  C++中的迭代器 312

14.6.1  迭代器的分类 312

14.6.2  迭代器的使用 314

14.7  新手疑难问题解答 315

14.8  实战训练 315

第15章  C++程序的异常处理 316

15.1  认识异常处理 316

15.1.1  认识异常处理机制 316

15.1.2  认识标准异常 317

15.1.3  异常处理语句块 317

15.2  异常处理的简单应用 318

15.2.1  抛出异常 318

15.2.2  重新抛出异常 320

15.2.3  捕获所有异常 321

15.2.4  异常的匹配 321

15.3  异常处理的高级应用 324

15.3.1  自定义异常类 324

15.3.2  捕获多个异常 325

15.3.3  异常的重新捕获 327

15.3.4  构造函数的异常处理 328

15.4  新手疑难问题解答 329

15.5  实战训练 330

第16章  C++中文件的操作 331

16.1  文件I/O操作 331

16.1.1  输入文件流 331

16.1.2  输出文件流 332

16.1.3  输入/输出文件流 333

16.2  文件的打开与关闭 334

16.2.1  文件的打开 334

16.2.2  文件的关闭 336

16.3  文本文件的处理 337

16.3.1  将变量写入文本文件 337

16.3.2  将变量写入文件尾部 337

16.3.3  从文本文件中读取变量 338

16.4  使用函数处理文本文件 339

16.4.1  使用函数get()读取文本文件 339

16.4.2  使用函数getline()读取文本文件 340

16.4.3  使用函数put()将记录写入文本文件 340

16.5  新手疑难问题解答 341

16.6  实战训练 341