《C++程序设计 基于C++11标准》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:李长河,童恒建,叶亚琴,杨鸣编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2018
  • ISBN:9787121343520
  • 页数:266 页
图书介绍:本书紧随C++语言发展的时代步伐,立足于培养工程实践能力强、创新能力强、具备国际竞争力的高素质复合型“新工科”人才,是国内少有的采用C++11新标准编写的面向对象程序设计教材。本书不仅讲解新标准下C++语言的基本语法,展现C++语言的发展现状,更注重编程思维和解决实际问题的能力的培养。本书结合算法与数据结构,通过简明、扼要的例子讲解C++语言的特性和使用方法。内容涵盖新标准下C++基本语法、面向对象程序设计核心技术、基本数据结构及常用算法和工具。本书适用于高等学校理工科各专业的C++程序设计、面向对象程序设计等课程,也可供初级或中高级程序员,以及工程技术人员参考使用。

第1部分 基础篇 2

第1章 初识C++程序 2

1.1 编写一个简单的C++程序 2

1.2 认识类 4

1.3 编译与调试程序 6

习题1 7

第2章 基本数据类型和表达式 8

2.1 C++语句基本元素 8

2.1.1 标识符 8

2.1.2 关键字 8

2.2 基本数据类型 9

2.2.1 内置类型 10

2.2.2 常量 11

2.3 对象 12

2.3.1 对象的定义和初始化 13

2.3.2 对象的声明 14

2.3.3 作用域和生命期 14

2.4 常量修饰符和类型推导 16

2.4.1 const修饰符 16

2.4.2 constexpr和常量表达式 16

2.4.3 类型推导 17

2.5 表达式 18

2.5.1 基本知识 19

2.5.2 算术运算符 20

2.5.3 赋值运算符 21

2.5.4 自增和自减运算符 22

2.5.5 逻辑和关系运算符 22

2.5.6 逗号运算符 24

2.5.7 条件运算符 24

2.5.8 sized运算符 24

2.5.9 位运算符 25

2.5.10 求值次序 26

2.6 类型转换 26

2.6.1 隐式类型转换 26

2.6.2 显式类型转换 27

习题2 27

第3章 语句控制结构 30

3.1 语句 30

3.1.1 空语句 30

3.1.2 复合语句 30

3.1.3 控制结构语句作用域 31

3.2 分支结构 31

3.2.1 if语句 31

3.2.2 switch语句 35

3.3 循环结构 36

3.3.1 while语句 37

3.3.2 do while语句 38

3.3.3 for语句 38

3.3.4 循环语句的选择 39

3.4 跳转语句 41

3.4.1 break语句 41

3.4.2 continue语句 42

3.5 嵌套结构和应用实例 42

习题3 45

第4章 复合类型、string和vector 47

4.1 引用 47

4.1.1 引用const对象 48

4.1.2 auto和引用 48

4.1.3 decltype和引用 49

4.1.4 右值引用 49

4.2 指针 50

4.2.1 指针的定义 50

4.2.2 改变指向 52

4.2.3 const和指针 52

4.2.4 类型推导和指针 53

4.2.5 void指针 53

4.2.6 多级指针 54

4.2.7 引用和指针 54

4.3 数组 55

4.3.1 数组的定义和初始化 55

4.3.2 访问数组元素 57

4.3.3 多维数组 60

4.4 指针和数组 63

4.4.1 指针指向数组 63

4.4.2 利用指针访问数组 64

4.5 string类型 66

4.5.1 string类型常用操作 67

4.5.2 C风格字符串 70

4.6 vector类型 71

4.6.1 定义和初始化vector对象 71

4.6.2 vector类型常用操作 72

4.6.3 使用迭代器 72

4.7 枚举类型 76

4.7.1 定义枚举类型 76

4.7.2 使用枚举类型 77

习题4 77

第5章 函数 81

5.1 认识函数 81

5.1.1 定义函数 81

5.1.2 调用函数 82

5.1.3 调用规则 82

5.1.4 无参列表和void返回类型 83

5.1.5 函数声明 83

5.2 局部对象和全局对象 84

5.2.1 存储周期 84

5.2.2 局部对象 84

5.2.3 全局对象 85

5.3 参数传递 87

5.3.1 值传递 87

5.3.2 引用传递 89

5.3.3 const形参 89

5.3.4 数组形参 90

5.4 返回值类型 92

5.4.1 无值返回 92

5.4.2 有值返回 93

5.5 函数重载和特殊用途的函数 95

5.5.1 函数重载 95

5.5.2 默认参数 95

5.5.3 内联函数 96

5.5.4 constexpr函数 97

5.6 函数指针和lambda表达式 98

5.6.1 函数指针 98

5.6.2 lambda表达式 101

5.7 递归调用 102

5.7.1 递推和回归 102

5.7.2 递归和循环 104

5.8 编译预处理和多文件结构 106

5.8.1 宏定义 106

5.8.2 条件编译 108

5.8.3 多文件结构 108

习题5 110

第6章 类 114

6.1 类的定义 114

6.1.1 定义一个类 114

6.1.2 定义和使用成员函数 115

6.1.3 定义辅助函数 117

6.1.4 访问控制 117

6.1.5 友元 118

6.2 构造函数与析构函数 119

6.2.1 默认构造函数 120

6.2.2 复制构造函数 122

6.2.3 析构函数 125

6.3 运算符重载 125

6.3.1 基本概念 125

6.3.2 重载原则 127

6.3.3 输入和输出运算符 128

6.3.4 递增和递减运算符 129

6.3.5 函数调用运算符 130

6.3.6 类型转换运算符 130

6.4 静态成员 131

6.4.1 声明静态成员 131

6.4.2 使用静态成员 132

6.5 类成员指针 133

6.5.1 数据成员指针 133

6.5.2 成员函数指针 133

习题6 134

第2部分 设计篇 138

第7章 模板与泛型编程 138

7.1 函数模板 138

7.1.1 定义函数模板 138

7.1.2 实例化函数模板 139

7.1.3 模板参数类型 140

7.1.4 类成员模板 142

7.1.5 可变参函数模板 142

7.2 类模板 144

7.2.1 成员函数定义 145

7.2.2 实例化类模板 146

7.2.3 默认模板参数 146

7.3 排序与查找 147

7.3.1 排序算法 147

7.3.2 二分查找算法 150

习题7 151

第8章 动态内存与数据结构 153

8.1 动态内存 153

8.1.1 创建动态对象 153

8.1.2 释放动态内存 154

8.1.3 内存泄漏 154

8.1.4 智能指针 155

8.1.5 动态数组 157

8.2 拷贝控制① 158

8.2.1 简单字符串类 158

8.2.2 复制与赋值 160

8.2.3 移动对象 161

8.3 线性链表 162

8.3.1 链表表示 163

8.3.2 插入操作 164

8.3.3 删除操作 165

8.3.4 清空链表 166

8.3.5 打印链表 166

8.3.6 拷贝控制与友元声明 167

8.4 链栈 167

8.4.1 链栈表示与操作 168

8.4.2 简单计算器 169

8.5 二叉树 172

8.5.1 二叉树的概念和表示 172

8.5.2 创建二叉搜索树 174

8.5.3 遍历操作 175

8.5.4 搜索操作 175

8.5.5 销毁操作 176

8.5.6 拷贝控制及友元声明 176

习题8 177

第9章 继承与多态 179

9.1 继承 179

9.1.1 定义基类 179

9.1.2 定义派生类 180

9.1.3 访问控制 181

9.1.4 类型转换 184

9.2 构造、拷贝控制与继承 185

9.2.1 派生类对象的构造 185

9.2.2 拷贝控制与继承 186

9.3 虚函数与多态性 188

9.3.1 虚函数 188

9.3.2 动态绑定 189

9.3.3 抽象类 191

9.3.4 继承与组合 192

9.3.5 再探计算器 194

习题9 197

第10章 简单输入输出 201

10.1 基本知识 201

10.1.1 IO类对象 201

10.1.2 条件状态 202

10.1.3 刷新缓冲区 203

10.2 标准输入输出 203

10.2.1 字符数据的输入 203

10.2.2 格式化控制 204

10.3 文件输入输出与string流 206

10.3.1 使用文件流对象 206

10.3.2 文件模式 206

10.3.3 string流 208

习题10 209

第11章 标准模板库 210

11.1 迭代器 210

11.1.1 实现Find函数模板 210

11.1.2 使用迭代器 212

11.2 容器 213

11.2.1 容器概述 213

11.2.2 顺序容器 215

11.2.3 关联容器 218

11.2.4 高效使用容器 221

11.3 泛型算法 224

11.3.1 算法概述 224

11.3.2 向算法传递函数 226

11.3.3 参数绑定 228

11.3.4 使用function 229

习题11 230

第12章 工具与技术 231

12.1 命名空间 231

12.1.1 定义命名空间 232

12.1.2 使用命名空间 233

12.2 异常处理 234

12.2.1 抛出异常 234

12.2.2 检测异常 235

12.2.3 捕获异常 235

12.2.4 使用标准库异常类 236

12.3 多重继承与虚继承 237

12.3.1 多重继承 237

12.3.2 虚继承 238

12.4 嵌套类 239

12.4.1 二维数组类 239

12.4.2 通用计算器 240

12.5 运行时类型识别 243

12.5.1 dynamic_cast运算符 243

12.5.2 typeid运算符 244

12.6 union类型 245

12.6.1 定义union类型 245

12.6.2 使用union类型 245

12.7 标准库特殊工具 246

12.7.1 tuple类型 246

12.7.2 bitset类型 247

12.7.3 日期和时间 248

习题12 249

附录A ASCII字符表 251

附录B 运算符优先级表 252

附录C 标准库算法 253

参考文献 265