《C++程序设计》PDF下载

  • 购买积分:17 如何计算积分?
  • 作  者:严悍,李千目,张琨编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2010
  • ISBN:9787302227212
  • 页数:589 页
图书介绍:本书分为3部分,第1部分介绍基于C语言的结构化编程技术。第2部分介绍基于C++面向对象编程技术。第3部分是根据ANSI C++标准的语法补充。

第1章 概述 1

1.1 C++语言发展历史 1

1.2 一个简单的C++程序 2

1.3 编程的基本要求 4

1.4 C++程序的开发步骤 4

1.5 VC++开发环境简介 5

1.6 C++开发环境 7

1.7 本书组织结构 8

练习题 10

第2章 数据类型与变量 11

2.1 关键字和标识符 11

2.1.1 关键字 11

2.1.2 标识符 13

2.1.3 标点符号 13

2.1.4 分隔符 13

2.2 基本数据类型 14

2.2.1 布尔型 15

2.2.2 字符型 15

2.2.3 整型 15

2.2.4 浮点型 16

2.2.5 空类型 16

2.3 字面常量 17

2.3.1 逻辑常量 17

2.3.2 整型常量 17

2.3.3 实型常量 17

2.3.4 字符常量 18

2.3.5 字符串常量 19

2.4 变量 20

2.4.1 变量的说明 20

2.4.2 变量的初始化 20

2.4.3 变量的赋值 21

2.4.4 变量的输入输出 21

2.4.5 命名常量 24

小结 25

练习题 25

第3章 运算符与表达式 27

3.1 基本运算符 27

3.1.1 算术运算符 29

3.1.2 关系运算符 30

3.1.3 逻辑运算符 31

3.1.4 位运算符 32

3.1.5 条件运算符 35

3.1.6 赋值运算符 36

3.1.7 逗号运算符 37

3.1.8 自增、自减运算符 38

3.1.9 sizeof运算符 39

3.1.10 typeid运算符 40

3.2 表达式 41

3.2.1 左值表达式和右值表达式 41

3.2.2 算术表达式 41

3.2.3 赋值表达式 42

3.2.4 关系表达式 42

3.2.5 逻辑表达式 43

3.2.6 逗号表达式 43

3.2.7 表达式语句 44

3.3 类型转换 44

3.3.1 自动类型转换 44

3.3.2 赋值类型转换 46

3.3.3 强制类型转换 47

小结 49

练习题 50

第4章 基本语句 53

4.1 语句分类 53

4.1.1 说明语句 53

4.1.2 表达式语句 53

4.1.3 选择语句 54

4.1.4 循环语句 54

4.1.5 跳转语句 54

4.1.6 空语句 54

4.1.7 复合语句 54

4.1.8 异常处理语句 55

4.1.9 标号语句 55

4.2 程序的基本结构 55

4.2.1 顺序结构 55

4.2.2 选择结构 56

4.2.3 循环结构 56

4.3 选择语句 57

4.3.1 条件语句 58

4.3.2 开关语句 61

4.4 循环语句 64

4.4.1 while语句 64

4.4.2 do-while语句 66

4.4.3 for语句 67

4.4.4 循环语句的比较 69

4.4.5 循环的嵌套 69

4.5 跳转语句 70

4.5.1 break语句 70

4.5.2 continue语句 72

4.5.3 goto语句与标号语句 73

4.6 例子 73

小结 77

练习题 78

第5章 函数和编译预处理 81

5.1 函数的基本概念 81

5.1.1 库函数和用户定义函数 81

5.1.2 无参函数和有参函数 82

5.1.3 有返回值函数和无返回值函数 82

5.2 函数的定义 83

5.2.1 无参函数的定义 83

5.2.2 有参函数的定义 83

5.2.3 函数定义的要点 84

5.3 函数的调用 85

5.3.1 函数调用的形式 85

5.3.2 函数调用的方式 86

5.3.3 函数调用的要点 87

5.4 函数的重载 88

5.4.1 重载函数的定义 89

5.4.2 重载函数的调用 90

5.5 嵌套调用和递归调用 91

5.5.1 函数的嵌套调用 91

5.5.2 函数的递归调用 92

5.6 函数原型 97

5.7 特殊参数 99

5.7.1 带默认值的形参 99

5.7.2 可变参数 101

5.8 内联函数 103

5.9 作用域 104

5.9.1 块作用域 104

5.9.2 文件作用域 105

5.9.3 函数原型作用域 106

5.9.4 函数作用域 107

5.10 程序运行期的存储区域 107

5.10.1 静态存储区 107

5.10.2 全局存储区 108

5.10.3 动态存储区 108

5.11 存储类 108

5.11.1 auto变量 108

5.11.2 register变量 109

5.11.3 static变量与多文件项目 109

5.11.4 extern变量 112

5.11.5 存储类小结 113

5.12 编译预处理 114

5.12.1 包含文件 114

5.12.2 无参宏 115

5.12.3 有参宏 119

5.12.4 条件编译 120

5.12.5 条件编译示例 124

5.12.6 其他预处理指令 125

小结 126

练习题 127

第6章 数组 133

6.1 一维数组 133

6.1.1 一维数组的定义 133

6.1.2 一维数组的初始化 134

6.1.3 一维数组的使用 135

6.1.4 一维数组的应用 136

6.2 二维数组 143

6.2.1 二维数组的定义 143

6.2.2 二维数组的初始化 144

6.2.3 二维数组的应用 144

6.3 数组与函数 148

6.4 字符数组 151

6.4.1 字符数组的定义 151

6.4.2 字符数组的初始化 152

6.4.3 字符数组的输入输出 153

6.4.4 字符数组的操作 154

6.5 字符串处理函数 155

6.5.1 字符串处理函数 155

6.5.2 字符数组的应用 158

小结 160

练习题 161

第7章 结构、枚举、共同体 165

7.1 结构 165

7.1.1 结构类型的定义 165

7.1.2 定义结构变量 167

7.1.3 结构变量的初始化 169

7.1.4 结构变量的使用 169

7.1.5 结构的数组 172

7.1.6 结构中的静态成员 175

7.2 位域 177

7.2.1 位域的定义 178

7.2.2 位域的使用 179

7.3 枚举 181

7.3.1 枚举类型及枚举变量 181

7.3.2 枚举的使用 182

7.4 共同体 185

7.4.1 共同体类型的定义 185

7.4.2 共同体变量的说明及使用 185

7.5 类型定义typedef 191

小结 191

练习题 192

第8章 指针和引用 195

8.1 指针及指针变量 195

8.1.1 地址的概念 195

8.1.2 指针变量 197

8.1.3 指针的运算 198

8.2 指针与结构 202

8.2.1 结构的指针 202

8.2.2 指针作为结构成员 204

8.3 指针与数组 206

8.3.1 用指针访问数组 206

8.3.2 指针与字符串 211

8.3.3 指针的数组 213

8.4 指针与函数 222

8.4.1 指针作为形参 222

8.4.2 函数返回指针 223

8.4.3 函数的指针 224

8.5 void指针与const指针 229

8.5.1 void指针 229

8.5.2 const指针 232

8.6 动态使用内存 233

8.6.1 new和delete运算符 233

8.6.2 动态变量管理 237

8.6.3 注意要点 240

8.7 引用 241

8.7.1 引用变量的说明及使用 241

8.7.2 引用与数组、指针的关系 242

8.7.3 引用与函数 243

8.8 单向链表及其应用 246

8.8.1 链表概述 246

8.8.2 建立无序链表、遍历和撤销 249

8.8.3 添加、查找与删除元素 251

8.8.4 建立有序链表 256

8.8.5 链表的应用 257

小结 261

练习题 263

第9章 类和对象 269

9.1 类 269

9.1.1 类的定义 269

9.1.2 类成员的可见性 272

9.1.3 类的数据成员 273

9.1.4 类的成员函数 275

9.1.5 类与结构的区别 279

9.2 对象 280

9.2.1 对象的创建 280

9.2.2 访问对象的成员 281

9.2.3 类与对象的关系 283

9.3 this指针 284

9.4 类中还有什么? 285

小结 286

练习题 287

第10章 构造函数与析构函数 289

10.1 构造函数 289

10.1.1 构造函数的定义 289

10.1.2 默认构造函数 291

10.2 析构函数 292

10.3 拷贝构造函数与单参构造函数 294

10.3.1 拷贝构造函数 294

10.3.2 赋值操作函数 298

10.3.3 单参构造函数 304

10.4 复合对象与成员对象 306

10.4.1 构造过程 306

10.4.2 复合对象设计实例 309

10.4.3 复合对象设计要点 313

10.5 对象数组 314

10.5.1 定义和使用 314

10.5.2 对象数组作为成员 315

10.6 静态成员 318

10.6.1 静态数据成员 318

10.6.2 静态成员函数 320

10.7 const和volatile修饰符 321

10.7.1 修饰符const 321

10.7.2 修饰符volatile 323

10.8 指针成员 324

10.8.1 矩阵类 324

10.8.2 双向关联 329

10.9 引用成员 336

10.9.1 引用的问题 336

10.9.2 设计方案 337

10.9.3 编程实现 339

10.10 类成员的指针 346

10.10.1 数据成员的指针 346

10.10.2 成员函数的指针 348

小结 350

练习题 353

第11章 类的继承 357

11.1 继承与派生 357

11.1.1 基类与派生类 357

11.1.2 派生类的定义与构成 359

11.1.3 继承方式与访问控制 360

11.2 派生类的构造和析构 361

11.2.1 派生类的构造函数 361

11.2.2 派生类的析构函数 363

11.3 二义性问题 370

11.3.1 多继承造成的二义性 370

11.3.2 支配规则 371

11.4 虚基类 373

11.4.1 共同基类造成的二义性 373

11.4.2 虚基类的说明 374

11.4.3 虚基类的例子 376

11.5 子类型关系 378

11.6 虚函数 381

11.6.1 定义和使用 381

11.6.2 成员函数中调用虚函数 384

11.6.3 构造函数中调用虚函数 385

11.6.4 虚析构函数 386

11.6.5 纯虚函数与抽象类 387

11.6.6 抽象类的设计 389

11.7 例子:对象的链表 395

11.7.1 方案设计 395

11.7.2 对象结点编程 397

11.7.3 对象链表编程 398

11.7.4 对象链表的测试 401

11.8 继承性设计要点 405

小结 407

练习题 410

第12章 运算符重载 417

12.1 一般运算符重载 417

12.1.1 运算符重载函数 417

12.1.2 双目运算符的重载 418

12.1.3 单目运算符的重载 420

12.2 用友元函数实现运算符重载 422

12.2.1 友元函数 422

12.2.2 定义重载函数 422

12.3 特殊运算符的重载 426

12.3.1 赋值操作函数 426

12.3.2 类型转换函数 426

12.3.3 下标运算符 428

12.3.4 函数调用运算符 432

12.4 例子:字符串类 433

小结 440

练习题 441

第13章 模板 445

13.1 模板的概念 445

13.2 函数模板 446

13.2.1 定义 446

13.2.2 实例化 447

13.2.3 函数模板与有参宏的区别 448

13.2.4 模板函数的重载 449

13.2.5 函数模板的例子 450

13.3 类模板 452

13.3.1 定义 452

13.3.2 实例化 453

13.3.3 堆栈类模板 456

13.3.4 矩阵类模板 459

13.4 标准模板库STL简介 464

13.4.1 容器简介 464

13.4.2 迭代器简介 466

13.4.3 容器的共同类型和操作 468

13.4.4 vector,deque和list 469

13.4.5 set和multiset 475

13.4.6 map和multimap 477

13.4.7 stack,queue和priority_queue 482

13.4.8 算法简介 485

小结 485

练习题 486

第14章 输入输出流 489

14.1 概述 489

14.1.1 流Stream 489

14.1.2 文件 490

14.1.3 缓冲 490

14.2 基本流类 490

14.2.1 基本流类体系 491

14.2.2 预定义的标准流与提取和插入运算符 492

14.2.3 流的格式控制 492

14.2.4 流的错误处理 495

14.3 标准输入输出 496

14.3.1 不同类型的数据输入 497

14.3.2 输入操作的成员函数 498

14.3.3 不同类型的数据输出 500

14.3.4 输出操作的成员函数 500

14.3.5 重载提取和插入运算符 501

14.4 文件流 503

14.4.1 文件概述 503

14.4.2 文件处理的一般过程 504

14.4.3 文件的打开与关闭 504

14.4.4 文本文件的使用 508

14.4.5 二进制文件的使用 510

14.4.6 文件的随机访问 513

14.5 例子:学生分数管理 516

小结 524

练习题 525

第15章 异常 529

15.1 异常的概念 529

15.2 异常类型的架构 531

15.3 异常处理语句 533

15.3.1 throw语句 533

15.3.2 try-catch语句 535

15.3.3 例子 538

15.4 终止处理器 541

15.5 扩展新的异常类型 542

15.6 异常类型的应用 544

15.7 函数设计中的异常处理 547

15.8 异常可能导致内存泄漏 550

15.9 构造与析构中的异常 551

小结 554

练习题 555

第16章 ANSI C++标准语法补充 559

16.1 逻辑型bool 559

16.2 命名空间namespace 560

16.2.1 命名空间的定义 560

16.2.2 空间中成员的访问 562

16.3 修饰符explicit 565

16.4 修饰符mutable 566

16.5 RTTI与typeid 567

16.6 强制类型转换 569

16.6.1 static_cast运算符 570

16.6.2 dynamic_cast运算符 571

16.6.3 const_cast运算符 573

16.6.4 reinterpret_cast运算符 574

小结 575

附录A ASCII码表 577

附录B 常用库函数 579

参考文献 589