当前位置:首页 > 工业技术
C++宝典
C++宝典

C++宝典PDF电子书下载

工业技术

  • 电子书积分:18 积分如何计算积分?
  • 作 者:李鹏程等编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2010
  • ISBN:9787121106934
  • 页数:616 页
图书介绍:本书分为5部分,分别是C++基础、面向对象编程、标准模板库、底层开发和综合案例。前4部分循序渐进地讲解了C++程序的组成及开发过程、程序中的数据、语句和表达式、程序流程控制、数组与字符串、指针与引用、函数、函数模板、错误与异常处理、宏与预编译、面向对象基础、类的封装、重载操作符和自定义转换、类的继承、多继承和虚拟继承、多态、类模板、文件流、使用标准模板库STL、序列式容器、关联式容器、函数对象和算法、名称空间、位操作和在C++中嵌入汇编等知识。
《C++宝典》目录
标签:编著 宝典

第1部分 C++基础 1

第1章 走进C++ 2

1.1 初识C++ 2

1.1.1 从C到C++ 2

1.1.2 从面向过程到面向对象 3

1.1.3 认识类与对象 4

1.1.4 面向对象编程的特点 5

1.2 C++的应用现状 5

1.3 C++未来的发展 6

1.4 如何学习C++ 6

1.5 小结 7

第2章 C++程序的组成及开发过程 8

2.1 一般开发过程 8

2.2 从简单程序开始 9

2.2.1 书写源代码 9

2.2.2 编译成目标文件 10

2.2.3 链接成可执行程序 10

2.2.4 运行程序 11

2.3 C++程序的组成 11

2.4 注释 13

2.4.1 注释的类型 13

2.4.2 使用注释的注意事项 13

2.5 标准IO对象 13

2.6 使用名称空间 14

2.7 编译器和编译过程 15

2.8 选择集成开发环境 17

2.9 Dev-C++简介 17

2.9.1 安装 18

2.9.2 建立工程 19

2.9.3 编译和运行 19

2.10 程序的调试 20

2.10.1 调试的基本过程 20

2.10.2 调试手段 21

2.10.3 调试实例 22

2.11 综合实例 26

2.12 小结 27

第3章 程序中的数据 28

3.1 常量和变量 28

3.1.1 什么是常量 28

3.1.2 什么是变量 29

3.1.3 定义变量 29

3.1.4 初始化变量 30

3.1.5 为变量赋值 32

3.2 数据类型 32

3.2.1 整型 33

3.2.2 特殊整型 33

3.2.3 无符号整型 34

3.2.4 浮点型 34

3.2.5 字符型 35

3.2.6 无符号字符型 37

3.2.7 转义字符 37

3.2.8 宽字符型 38

3.2.9 布尔型 38

3.3 变量与内存的关系 39

3.3.1 变量的地址 39

3.3.2 变量的字节长度 39

3.3.3 计算数据的字节长度 40

3.3.4 变量的取值范围 41

3.4 自定义数据类型 42

3.4.1 结构体 42

3.4.2 共用体 43

3.4.3 枚举体 44

3.5 用宏替换字面常量 44

3.6 用const定义常量 46

3.7 综合实例 46

3.7.1 计算圆的周长和面积 46

3.7.2 三角形的类型判断和面积计算 47

3.8 小结 49

第4章 语句和表达式 50

4.1 语句和语句块 50

4.1.1 空格的作用 50

4.1.2 语句块的组织 51

4.1.3 语句块中的变量 51

4.2 什么是表达式 51

4.3 运算符分类 52

4.3.1 算术运算符 52

4.3.2 算术运算的溢出 53

4.3.3 赋值运算符 53

4.3.4 自增和自减运算符 54

4.3.5 关系运算符 55

4.3.6 逻辑运算符 55

4.3.7 条件运算符 56

4.3.8 逗号运算符 56

4.3.9 位运算符 56

4.3.10 复合赋值运算符 58

4.4 运算符的优先级和结合性 58

4.5 类型转换 59

4.5.1 隐式类型转换 60

4.5.2 特殊的隐式转换 61

4.5.3 显式类型转换 61

4.6 综合实例 62

4.6.1 找出某个范围内的素数 62

4.6.2 求最大值 64

4.7 小结 64

第5章 程序流程控制 65

5.1 程序流程的描述 65

5.1.1 伪码 65

5.1.2 流程图 65

5.2 分支 67

5.2.1 if语句 67

5.2.2 if...else语句 68

5.2.3 if...else语句的嵌套 70

5.2.4 switch语句 73

5.3 循环 76

5.3.1 while语句 76

5.3.2 do...while语句 78

5.3.3 for语句 79

5.4 循环控制语句 81

5.4.1 break语句 82

5.4.2 continue语句 82

5.5 流程跳转语句goto 82

5.6 小结 83

第6章 数组与字符串 84

6.1 什么是数组 84

6.2 定义数组 85

6.3 初始化数组 86

6.4 操作数组 87

6.5 数组的缺点 89

6.6 二维数组 89

6.6.1 什么是二维数组 89

6.6.2 定义二维数组 90

6.6.3 二维数组的初始化 90

6.6.4 操作二维数组 92

6.6.5 二维数组的存储 93

6.7 字符串 94

6.7.1 什么是字符串 94

6.7.2 定义字符串 95

6.7.3 字符串的初始化 95

6.7.4 操作字符串 96

6.7.5 字符串的数组 97

6.8 字符串处理函数 98

6.8.1 字符串复制函数strcpy 98

6.8.2 计算字符串长度函数strlen 99

6.8.3 字符串连接函数strcat 100

6.8.4 字符串比较函数strcmp 101

6.9 综合实例 102

6.9.1 数组元素排序 102

6.9.2 输出杨辉三角 104

6.9.3 字符串处理函数的使用 106

6.10 小结 107

第7章 指针与引用 108

7.1 什么是指针 108

7.1.1 指针与内存的关系 108

7.1.2 定义指针变量 109

7.1.3 使用指针指向数据 110

7.1.4 获取被指数据 110

7.1.5 指针的运算 112

7.2 指针与数组 113

7.2.1 指向数组的指针 114

7.2.2 使用指针访问数组 114

7.2.3 指向字符串的指针 116

7.3 指针与动态内存分配 120

7.3.1 程序中内存的分配方式 120

7.3.2 在堆上分配内存 121

7.3.3 释放堆上的内存 122

7.4 const与指针 123

7.4.1 指向const的指针 123

7.4.2 const指针 124

7.4.3 指向const的const指针 125

7.5 引用 125

7.5.1 定义引用 125

7.5.2 常引用 126

7.6 引用与指针的区别 127

7.7 综合实例 127

7.7.1 数组元素排序 127

7.7.2 输出杨辉三角 128

7.8 小结 130

第8章 函数 131

8.1 什么是函数 131

8.1.1 函数的组成部分 131

8.1.2 调用函数 132

8.1.3 为什么要使用函数 133

8.2 函数的声明和定义 133

8.2.1 函数的参数列表 133

8.2.2 调用函数前先声明 134

8.2.3 在头文件中声明函数 134

8.2.4 定义函数 135

8.2.5 函数实例——判断闰年 136

8.3 参数传递 138

8.3.1 函数的形参和实参 138

8.3.2 值传递 139

8.3.3 参数类型检查 139

8.3.4 使用默认实参 140

8.4 指针和引用参数 141

8.4.1 指针参数 141

8.4.2 数组参数 143

8.4.3 引用参数 146

8.5 函数中的变量 146

8.5.1 局部变量 146

8.5.2 全局变量 147

8.5.3 全局变量的初始化 148

8.5.4 多个源文件共享全局变量 148

8.5.5 静态变量 149

8.5.6 全局静态变量 150

8.6 递归函数 151

8.7 内联函数 152

8.8 函数重载 154

8.8.1 为什么需要函数重载 154

8.8.2 什么时侯需要重载函数 155

8.8.3 函数重载解析 156

8.9 函数指针 157

8.9.1 函数地址 157

8.9.2 定义函数指针 158

8.9.3 使用函数指针调用函数 159

8.9.4 函数指针的用途 160

8.10 综合实例 161

8.10.1 判断素数 161

8.10.2 分割字符串 163

8.11 小结 165

第9章 函数模板 166

9.1 为什么要使用函数模板 166

9.2 定义函数模板 168

9.2.1 抽取通用算法逻辑 168

9.2.2 语法 169

9.2.3 使用非类型参数 170

9.3 使用函数模板 170

9.3.1 实例化函数模板 171

9.3.2 取函数模板的地址 172

9.3.3 函数模板实参的推演 174

9.3.4 显式指定函数模板的实参 175

9.4 实参推演中的类型转换 175

9.4.1 左值转换 176

9.4.2 限定符修饰转换 176

9.4.3 到基类的转换 178

9.5 函数模板的编译 179

9.5.1 函数模板的两种编译方式 179

9.5.2 函数模板实例的编译时机 180

9.6 函数模板定义中的标识符解析 181

9.7 函数模板的特化 182

9.8 函数模板的重载 184

9.9 函数匹配规则 185

9.10 综合实例 186

9.10.1 数组求和函数模板 186

9.10.2 数组排序函数模板 188

9.11 小结 190

第10章 错误与异常处理 191

10.1 识别和处理错误 191

10.1.1 利用函数返回值识别错误 191

10.1.2 对错误结果做出相应处理 192

10.2 什么是异常 194

10.2.1 什么时候出现异常 194

10.2.2 异常与错误的区别 195

10.3 抛出异常 195

10.3.1 主动抛出异常 195

10.3.2 自定义异常类 197

10.4 捕获异常 198

10.4.1 try块 198

10.4.2 异常处理器 198

10.4.3 异常对象 200

10.4.4 栈展开 200

10.4.5 重新抛出 202

10.4.6 捕获全部异常 203

10.5 函数与异常 204

10.5.1 异常规格说明 204

10.5.2 异常安全的函数 205

10.6 使用异常的注意事项 206

10.7 综合实例 206

10.8 小结 208

第11章 宏与预编译 209

11.1 预处理器和编译器 209

11.2 预处理器的任务 210

11.2.1 包含文件 210

11.2.2 搜索头文件 210

11.2.3 展开宏 211

11.3 宏的作用 212

11.3.1 替代字面常量 212

11.3.2 替代运算符 213

11.3.3 声明已定义符号 214

11.3.4 预定义的宏 214

11.4 带参数的宏 215

11.4.1 定义带参数的宏 216

11.4.2 注意宏展开的结果 217

11.4.3 带参数的宏与函数的异同 218

11.4.4 特殊的宏符号 219

11.5 宏指令和预定义的宏 219

11.5.1 宏指令 219

11.5.2 利用预定义的宏指令进行有条件编译 220

11.5.3 文件包含命令和包含警卫 221

11.6 综合实例 223

11.7 小结 224

第2部分 面向对象编程 225

第12章 面向对象基础 226

12.1 对象与类详解 226

12.1.1 什么是对象 226

12.1.2 什么是类 227

12.2 对象的特征 228

12.2.1 封装性 228

12.2.2 继承性 229

12.2.3 多态性 230

12.3 面向过程与面向对象详解 230

12.3.1 面向过程 230

12.3.2 面向对象 231

12.4 面向对象的分析(OOA) 232

12.4.1 对问题领域进行建模 232

12.4.2 OOA的基本原则 233

12.4.3 OOA的基本步骤 234

12.5 面向对象的设计(OOD) 235

12.5.1 OOD要解决的问题 235

12.5.2 OOD的一些基本原则 235

12.5.3 OOD的基本步骤 236

12.6 综合实例 237

12.7 小结 238

第13章 类的封装 239

13.1 定义类 239

13.1.1 声明一个类 239

13.1.2 类的数据成员 240

13.1.3 类的成员函数 241

13.1.4 类的组织结构 242

13.1.5 分离成员函数的定义与实现 242

13.2 类对象 244

13.2.1 定义类对象 244

13.2.2 访问类对象成员 245

13.2.3 隐含的this指针 246

13.3 类成员的访问限制 248

13.3.1 一般访问限制 248

13.3.2 私有与安全性 249

13.3.3 友元 249

13.4 类的构造函数 251

13.4.1 构造函数的定义 252

13.4.2 构造函数的重载 252

13.4.3 默认构造函数 253

13.4.4 复制构造函数 254

13.4.5 构造函数初始化列表 255

13.5 类的析构函数 257

13.5.1 析构函数的定义 257

13.5.2 默认析构函数 258

13.6 类的static成员 259

13.6.1 定义static成员 260

13.6.2 使用static成员 260

13.7 综合实例 261

13.7.1 人的活动 261

13.7.2 自定义字符串类 262

13.8 小结 264

第14章 重载操作符和自定义转换 265

14.1 重载操作符的定义和使用 265

14.1.1 重载操作符的定义格式 265

14.1.2 可重载的操作符 266

14.1.3 使用重载操作符 266

14.1.4 类成员和全局操作符 267

14.1.5 操作符重载和友元的关系 268

14.2 输出和输入操作符的重载 269

14.2.1 输出操作符〈〈的重载 270

14.2.2 输入操作符〉〉的重载 271

14.3 赋值操作符 273

14.3.1 类的赋值操作 273

14.3.2 浅复制与深复制 274

14.3.3 重载赋值操作符 275

14.4 算术和关系操作符的重载 276

14.4.1 算术操作符的重载 277

14.4.2 相等操作符的重载 277

14.4.3 关系操作符的重载 278

14.5 其他操作符的重载 278

14.5.1 下标操作符的重载 278

14.5.2 成员访问操作符的重载 278

14.5.3 括号操作符的重载 279

14.6 自定义转换 280

14.6.1 构造函数转换 280

14.6.2 操作符转换 280

14.7 综合实例 281

14.8 小结 284

第15章 类的继承 285

15.1 确定类的层次 285

15.2 继承的类型 286

15.2.1 公有继承 286

15.2.2 私有继承 288

15.2.3 保护继承 289

15.3 选择继承方式 290

15.4 派生类对象的内存布局 292

15.5 将派生类对象转换为基类对象 293

15.6 派生类的构造和析构 294

15.6.1 构造派生类 294

15.6.2 析构派生类 296

15.7 使用基类成员 299

15.8 基类类型的指针和引用 300

15.9 综合实例 303

15.10 小结 305

第16章 多继承和虚拟继承 306

16.1 为什么要用多继承 306

16.2 定义多继承 307

16.3 多继承派生类对象的内存布局 308

16.4 访问基类成员 309

16.5 多继承存在的问题 311

16.6 虚拟继承 312

16.6.1 虚拟继承的语法 313

16.6.2 虚拟继承对象的内存布局 313

16.6.3 虚拟继承中的构造 316

16.7 虚拟继承的缺点 317

16.8 综合实例 318

16.8.1 改进水陆两栖坦克类 318

16.8.2 改进鸭嘴兽类 319

16.9 小结 321

第17章 多态 322

17.1 什么是多态 322

17.2 函数、模板和宏的多态性 322

17.3 动态多态 324

17.3.1 为什么要用动态多态 324

17.3.2 如何实现动态多态 325

17.3.3 用动态多态改进图形绘制程序 327

17.3.4 动态多态实例——计算不同职员的薪水 328

17.4 虚函数与模板方法 331

17.5 纯虚函数与抽象类 332

17.5.1 纯虚函数 332

17.5.2 什么时候用纯虚函数 333

17.5.3 从抽象类派生具体类 333

17.5.4 仅有纯虚函数的类——接口 334

17.5.5 图形类的接口 335

17.6 虚函数与动态绑定 337

17.6.1 如何实现动态绑定 337

17.6.2 虚函数的静态调用 338

17.6.3 虚函数的代价 338

17.7 虚拟析构函数 339

17.8 虚函数的默认实参 340

17.9 综合实例 341

17.10 小结 343

第18章 类模板 344

18.1 什么是类模板 344

18.2 定义类模板 345

18.2.1 语法 345

18.2.2 非类型参数 347

18.2.3 模板参数的默认实参 348

18.3 生成类模板的实例 348

18.3.1 类型参数的模板实例化 349

18.3.2 非类型参数的模板实例化 349

18.3.3 类模板范例 350

18.4 类模板的静态成员 352

18.5 类模板的友元 355

18.6 类模板的特化 356

18.6.1 类模板的全特化 357

18.6.2 类模板的偏特化 358

18.6.3 类模板的匹配规则 359

18.7 综合实例 361

18.8 小结 364

第19章 文件流 365

19.1 文件处理的整个过程 365

19.2 处理文件流的类 367

19.3 打开文件 370

19.3.1 打开文件的函数 370

19.3.2 打开文件的方式 373

19.4 操作文件 375

19.4.1 格式化读写 375

19.4.2 无格式读数据 377

19.4.3 无格式写数据 378

19.5 判断文件流状态 379

19.5.1 检查文件是否打开 379

19.5.2 文件流的状态 379

19.6 重定位读写位置 381

19.7 关闭文件 382

19.8 综合实例 383

19.8.1 模拟生成电子邮件 383

19.8.2 模拟读电子邮件 385

19.9 小结 386

第3部分 标准模板库 387

第20章 使用标准模板库STL 388

20.1 STL的形成 388

20.1.1 STL的历史 388

20.1.2 STL的各种版本 389

20.2 STL的组成部分 390

20.3 容器的分类 392

20.4 容器的常用方法 394

20.4.1 初始化容器 394

20.4.2 增加元素 395

20.4.3 删除元素 396

20.4.4 查找元素 397

20.4.5 修改元素 398

20.4.6 统计容器数据 398

20.4.7 其他方法 399

20.5 配置器 401

20.6 迭代器 402

20.6.1 迭代器思想 402

20.6.2 迭代器分类 403

20.6.3 定义迭代器变量 405

20.6.4 迭代器的基本用法 406

20.6.5 使用迭代器区间 409

20.6.6 迭代器的有效性 411

20.7 适配器 411

20.8 小结 413

第21章 序列式容器 414

21.1 向量vector 414

21.1.1 vector概述 414

21.1.2 构造vector 415

21.1.3 处理vector的元素 416

21.1.4 交换两个容器的元素 417

21.1.5 使用向量的实例 418

21.2 双向链表list 420

21.2.1 list概述 420

21.2.2 构造list 421

21.2.3 处理list的节点 421

21.2.4 链表的拼接和融合 423

21.2.5 list的反向迭代器 424

21.3 双端队列deque 426

21.3.1 deque概述 426

21.3.2 使用deque 427

21.4 容器适配器 429

21.5 栈stack 429

21.5.1 stack概述 429

21.5.2 使用stack 430

21.6 小结 432

第22章 关联式容器 433

22.1 关联式容器的存储结构 433

22.1.1 二叉树的概念 433

22.1.2 二叉树的表示 434

22.1.3 二叉树的遍历方法 435

22.1.4 二叉搜索树 436

22.1.5 平衡二叉树 437

22.1.6 关联式容器的元素 439

22.2 映射map 440

22.2.1 定义并构造map 440

22.2.2 map容器的pair结构 441

22.2.3 使用insert插入数据 443

22.2.4 使用下标运算符[]插入数据 445

22.2.5 查找数据 445

22.2.6 遍历map 447

22.2.7 删除数据 447

22.2.8 其他操作 448

22.2.9 使用map容器管理学生名册 449

22.3 集合set 452

22.3.1 定义并构造set 453

22.3.2 set容器的迭代器 454

22.3.3 set容器的基本操作 455

22.3.4 使用set容器管理学生名册 456

22.4 其他关联式容器 457

22.5 综合实例 458

22.6 小结 460

第23章 函数对象和算法 461

23.1 函数对象概述 461

23.1.1 函数对象的定义 461

23.1.2 用函数对象替代函数指针 462

23.2 STL函数对象分类 466

23.2.1 一元函数对象 466

23.2.2 二元函数对象 467

23.2.3 算术类函数对象 468

23.2.4 关系类函数对象 468

23.2.5 逻辑类函数对象 469

23.2.6 STL函数对象的一般应用 469

23.3 函数对象适配器 469

23.3.1 可以适配的函数对象 470

23.3.2 绑定器 471

23.3.3 绑定函数 473

23.3.4 取反器 474

23.3.5 取反函数 475

23.3.6 适配器的级联 476

23.4 算法概述 476

23.4.1 算法的特征 477

23.4.2 算法的复杂度 477

23.4.3 算法泛化 478

23.5 STL算法详解 479

23.5.1 迭代器参数 479

23.5.2 函数对象参数 480

23.5.3 算法分类 481

23.6 遍历算法 482

23.7 查找算法 483

23.7.1 查找单个元素 484

23.7.2 搜索子区间 485

23.7.3 搜索子区间中的一个值 487

23.7.4 有序区间的查找算法 488

23.8 排序算法 489

23.8.1 sort和stable_sort 490

23.8.2 partial_sort和partial_sort_copy 490

23.9 整理算法 492

23.9.1 分类 492

23.9.2 随机排列 493

23.9.3 颠倒 494

23.9.4 旋转 495

23.10 小结 496

第24章 名称空间 497

24.1 为什么要使用名称空间 497

24.2 创建名称空间 499

24.2.1 创建普通名称空间 500

24.2.2 创建嵌套名称空间 501

24.2.3 定义名称空间的成员 503

24.3 使用名称空间 505

24.3.1 使用整个名称空间 505

24.3.2 使用名称空间中的名字 506

24.4 为名称空间创建别名 507

24.5 匿名名称空间 509

24.5.1 定义匿名名称空间 509

24.5.2 匿名名称空间与static的区别 510

24.6 标准名称空间std 511

24.7 小结 512

第4部分 底层开发 513

第25章 位操作 514

25.1 数据的表示和编码 514

25.1.1 数据进制 514

25.1.2 数据存储 515

25.2 位运算 517

25.2.1 位运算简介 517

25.2.2 按位与“&” 517

25.2.3 按位或“|” 518

25.2.4 按位异或“^” 518

25.2.5 按位取反“~” 518

25.2.6 按位左移“〈〈” 518

25.2.7 按位右移“〉〉” 519

25.2.8 位赋值运算符 519

25.3 位运算的应用 519

25.3.1 设置位 520

25.3.2 取指定位 521

25.3.3 特定位取反 522

25.4 位段的定义及应用 523

25.4.1 位段的定义 523

25.4.2 位段的应用 525

25.5 小结 525

第26章 在C++中嵌入汇编语言 526

26.1 汇编语言的基本概念 526

26.1.1 什么是汇编语言 526

26.1.2 汇编语言的特点 526

26.1.3 汇编语言的应用领域 527

26.2 汇编语言的基本语法 528

26.2.1 通用数据传送指令 528

26.2.2 累加器专用传送指令 530

26.2.3 地址传送指令 532

26.2.4 标志寄存器传送指令 533

26.2.5 算术指令 534

26.2.6 逻辑指令 540

26.2.7 控制转移指令 543

26.2.8 循环控制指令 546

26.2.9 子程序调用和返回指令 546

26.3 汇编语言在C++中的应用 549

26.3.1 内联汇编的优点 549

26.3.2 __asm语法 549

26.3.3 在__asm块里使用汇编语言 550

26.3.4 在__asm块中使用C/C++元素 551

26.3.5 一个例子 553

26.4 小结 557

第5部分 综合案例 559

第27章 图书管理系统 560

27.1 需求分析 560

27.2 系统设计 561

27.2.1 总体设计 561

27.2.2 详细设计 562

27.2.3 数据库设计 562

27.3 类设计 564

27.3.1 创建应用程序 564

27.3.2 设计图书类 565

27.3.3 设计图书库类 567

27.3.4 设计读者类 568

27.3.5 设计读者库类 569

27.4 图书管理 571

27.4.1 查找图书 571

27.4.2 增加图书 572

27.4.3 维护图书 574

27.5 读者管理 576

27.5.1 查找读者 576

27.5.2 增加读者 578

27.5.3 维护读者 579

27.6 借书模块 581

27.7 还书模块 583

27.8 系统集成 584

27.9 小结 587

第28章 学生管理系统 588

28.1 需求分析 588

28.2 总体设计 589

28.3 数据结构设计 589

28.3.1 链表概述 590

28.3.2 构造单链表 590

28.3.3 设计数据结构 591

28.4 类设计 593

28.4.1 创建应用程序 593

28.4.2 设计Student类 594

28.5 详细设计 595

28.5.1 创建链表 595

28.5.2 插入节点 597

28.5.3 添加学生信息 599

28.5.4 显示学生信息 601

28.5.5 读入学生信息 602

28.5.6 编辑学生信息 605

28.5.7 删除学生信息 608

28.5.8 保存学生信息 610

28.6 系统集成 611

28.6.1 设计菜单 611

28.6.2 绑定菜单功能 612

28.6.3 设计主函数 615

28.7 小结 615

相关图书
作者其它书籍
返回顶部