《C++入门经典 第5版 修订版》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:(美)JESSE LIBERTY,ROGERS CADENHEAD著;袁国忠,朱正平译
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2015
  • ISBN:9787115382023
  • 页数:314 页
图书介绍:本书通过大量短小精悍的程序详细阐述了基本的C++编程概念,包括C++程序的组成部分、变量、常量、表达式、语句、运算符、函数、循环、数组、指针、引用、函数和运算符重载、继承、C++0x新增功能、面向对象分析和设计、模板、错误和异常处理等主题。每章都提供了示例程序清单,并辅以示例输出和代码分析,以阐述该章介绍的主题。为加深读者对所学内容的理解,每章末尾都提供了常见问题及其答案以及练习和测验。

第一部分 C++入门 2

第1章 编写第一个程序 2

1.1 使用C++ 2

1.2 寻找编译器 3

1.3 编译和链接源代码 5

1.4 创建您的第一个程序 5

1.5 总结 6

1.6 问与答 7

1.7 作业 7

1.7.1 测验 7

1.7.2 答案 8

1.7.3 练习 8

第2章 程序的组成部分 9

2.1 使用C++的原因 9

2.1.1 编程风格 10

2.1.2 C++和面向对象编程 11

2.2 程序的组成部分 12

2.2.1 预处理器编译指令 12

2.2.2 源代码行 13

2.3 注释 13

2.4 函数 14

2.5 总结 16

2.6 问与答 16

2.7 作业 17

2.7.1 测验 17

2.7.2 答案 18

2.7.3 练习 18

第3章 创建变量和常量 19

3.1 变量是什么 19

3.1.1 在内存中存储变量 20

3.1.2 无符号变量和带符号变量 21

3.1.3 变量类型 21

3.2 定义变量 22

3.3 给变量赋值 23

3.4 使用类型定义 24

3.5 常量 25

3.5.1 定义常量 26

3.5.2 枚举常量 26

3.6 总结 26

3.7 问与答 27

3.8 作业 27

3.8.1 测验 27

3.8.2 答案 28

3.8.3 练习 28

第4章 使用表达式、语句和运算符 29

4.1 语句 29

4.1.1 空白 29

4.1.2 复合语句 30

4.2 表达式 30

4.3 运算符 31

4.3.1 赋值运算符 31

4.3.2 数学运算符 31

4.3.3 组合运算符 32

4.3.4 递增和递减运算符 32

4.3.5 前缀运算符和后缀运算符 32

4.3.6 运算符优先级 34

4.3.7 关系运算符 36

4.4 if-else条件语句 36

4.4.1 else子句 37

4.4.2 复合if语句 37

4.5 逻辑运算符 39

4.5.1 与运算符 39

4.5.2 或运算符 39

4.5.3 非运算符 39

4.5.4 关系运算符和逻辑运算符的优先级 40

4.6 棘手的表达式值 40

4.7 总结 40

4.8 问与答 41

4.9 作业 41

4.9.1 测验 41

4.9.2 答案 42

4.9.3 练习 42

第5章 调用函数 43

5.1 函数是什么 43

5.2 声明和定义函数 43

5.3 在函数中使用变量 45

5.3.1 局部变量 45

5.3.2 全局变量 46

5.4 函数参数 47

5.5 从函数返回值 48

5.6 默认函数参数 50

5.7 函数重载 51

5.8 总结 52

5.9 问与答 53

5.10 作业 53

5.10.1 测验 53

5.10.2 答案 54

5.10.3 练习 54

第6章 控制程序流程 55

6.1 循环 55

6.2 while循环 55

6.2.1 退出循环 56

6.2.2 跳到下一次循环 57

6.3 do-while循环 58

6.4 for循环 59

6.4.1 高级for循环 61

6.4.2 嵌套循环 61

6.5 switch语句 62

6.6 总结 64

6.7 问与答 64

6.8 作业 65

6.8.1 测验 65

6.8.2 答案 65

6.8.3 练习 66

第7章 使用数组和字符串存储信息 67

7.1 数组是什么 67

7.2 写入时超过数组末尾 69

7.3 初始化数组 69

7.4 多维数组 70

7.4.1 初始化多维数组 71

7.4.2 内存简介 72

7.5 字符数组 72

7.6 复制字符串 74

7.7 总结 75

7.8 问与答 75

7.9 作业 75

7.9.1 测验 75

7.9.2 答案 76

7.9.3 练习 76

第二部分 类 78

第8章 创建基本类 78

8.1 类型是什么 78

8.2 创建新类型 78

8.3 类和成员 79

8.3.1 声明类 79

8.3.2 创建对象 80

8.4 访问类成员 80

8.5 实现成员函数 81

8.6 创建和删除对象 83

8.6.1 默认构造函数 84

8.6.2 编译器提供的构造函数 84

8.7 总结 86

8.8 问与答 87

8.9 作业 87

8.9.1 测验 87

8.9.2 答案 87

8.9.3 练习 88

第9章 高级类 89

9.1 const成员函数 89

9.2 接口和实现 90

9.3 组织类声明和函数定义 90

9.4 内联实现 90

9.5 将其他类用作成员数据的类 92

9.6 总结 96

9.7 问与答 96

9.8 作业 96

9.8.1 测验 96

9.8.2 答案 97

9.8.3 练习 97

第三部分 内存管理 100

第10章 创建指针 100

10.1 理解指针及其用途 100

10.1.1 在指针中存储地址 102

10.1.2 间接运算符(间接地使用指针) 103

10.1.3 指针、地址和变量 104

10.1.4 使用指针操作数据 105

10.1.5 查看存储在指针中的地址 105

10.1.6 为何使用指针 107

10.2 栈和堆 107

10.2.1 使用关键字new 108

10.2.2 使用关键字delete 109

10.2.3 避免内存泄露 110

10.3 总结 111

10.4 问与答 111

10.5 作业 111

10.5.1 测验 111

10.5.2 答案 112

10.5.3 练习 112

第11章 开发高级指针 113

11.1 在堆中创建对象 113

11.2 删除对象 113

11.3 使用指针访问数据成员 114

11.4 堆中的数据成员 115

11.5 this指针 117

11.6 悬摆指针 118

11.7 const指针 118

11.8 const指针和const成员函数 119

11.9 总结 120

11.10 问与答 121

11.11 作业 121

11.11.1 测验 121

11.11.2 答案 121

11.11.3 练习 122

第12章 创建引用 123

12.1 什么是引用 123

12.2 创建引用 123

12.3 将地址运算符用于引用 124

12.4 可引用的目标 126

12.5 空指针和空引用 127

12.6 按引用传递函数参数 127

12.6.1 使用指针实现swap() 128

12.6.2 使用引用实现swap() 129

12.7 理解函数头和原型 130

12.8 返回多个值 130

12.9 总结 133

12.10 问与答 133

12.11 作业 133

12.11.1 测验 133

12.11.2 答案 134

12.11.3 练习 134

第13章 高级引用和指针 135

13.1 按引用传递以提高效率 135

13.2 传递const指针 137

13.3 作为指针替代品的引用 139

13.4 什么情况下使用引用以及什么情况下使用指针 141

13.5 不要返回不在作用域内的引用 141

13.6 返回指向堆中对象的引用 142

13.7 谁拥有指针 143

13.8 总结 144

13.9 问与答 144

13.10 作业 144

13.10.1 测验 144

13.10.2 答案 145

13.10.3 练习 145

第四部分 高级C++ 148

第14章 高级函数 148

14.1 重载成员函数 148

14.2 使用默认值 150

14.3 初始化对象 151

14.4 复制构造函数 152

14.5 总结 155

14.6 问与答 155

14.7 作业 155

14.7.1 测验 156

14.7.2 答案 156

14.7.3 练习 156

第15章 运算符重载 157

15.1 重载运算符 157

15.1.1 编写递增方法 158

15.1.2 重载后缀运算符 160

15.1.3 重载加法运算符 161

15.1.4 对运算符重载的限制 162

15.1.5 赋值运算符 163

15.2 转换运算符 165

15.3 总结 167

15.4 问与答 168

15.5 作业 168

15.5.1 测验 168

15.5.2 答案 168

15.5.3 练习 169

第五部分 继承和多态 172

第16章 使用继承扩展类 172

16.1 什么是继承 172

16.1.1 继承和派生 173

16.1.2 动物和继承 173

16.1.3 派生语法 173

16.2 私有和保护 175

16.3 构造函数和析构函数 176

16.4 将参数传递给基类构造函数 178

16.5 重写函数 181

16.5.1 重载和重写 183

16.5.2 隐藏基类方法 183

16.5.3 调用基类方法 184

16.6 总结 185

16.7 问与答 185

16.8 作业 185

16.8.1 测验 186

16.8.2 答案 186

16.8.3 练习 186

第17章 使用多态和派生类 187

17.1 使用虚函数实现多态 187

17.2 虚成员函数的工作原理 190

17.2.1 不能通过基类指针访问派生类特有的方法 191

17.2.2 切除 191

17.2.3 虚析构函数 193

17.2.4 虚复制构造函数 193

17.2.5 使用虚成员函数的代价 196

17.3 总结 196

17.4 问与答 196

17.5 作业 196

17.5.1 测验 196

17.5.2 答案 197

17.5.3 练习 197

第18章 使用高级多态 198

18.1 单继承存在的问题 198

18.2 抽象数据类型 201

18.2.1 纯虚函数 203

18.2.2 实现纯虚函数 204

18.2.3 复杂的抽象层次结构 206

18.2.4 哪些类是抽象的 209

18.3 总结 210

18.4 问与答 210

18.5 作业 210

18.5.1 测验 210

18.5.2 答案 211

18.5.3 练习 211

第19章 使用链表存储信息 212

19.1 链表和其他结构 212

19.2 链表案例研究 213

19.2.1 委托 213

19.2.2 链表的组成部分 213

19.3 作为对象的链表 219

19.4 总结 220

19.5 问与答 220

19.6 作业 220

19.6.1 测验 221

19.6.2 答案 221

19.6.3 练习 221

第六部分 特殊主题 224

第20章 使用特殊的类、函数和指针 224

20.1 静态成员数据 224

20.2 静态成员函数 226

20.3 将其他类对象作为成员 227

20.3.1 访问被包含类的成员 231

20.3.2 禁止访问包含类的成员 232

20.3.3 按引用还是按值复制 232

20.4 友元类和友元函数 232

20.5 函数指针 233

20.5.1 函数指针数组 235

20.5.2 将函数指针传递给其他函数 237

20.5.3 将typedef用于函数指针 239

20.5.4 成员函数指针 239

20.5.5 成员函数指针数组 241

20.6 总结 242

20.7 问与答 243

20.8 作业 243

20.8.1 问与答 243

20.8.2 答案 244

20.8.3 练习 244

第21章 使用C++0x新增的功能 245

21.1 下一版C++ 245

21.2 空指针常量 245

21.3 编译阶段常量表达式 247

21.4 自动确定类型的变量 248

21.5 新的for循环 250

21.6 总结 250

21.7 问与答 251

21.8 作业 251

21.8.1 测验 251

21.8.2 答案 252

21.8.3 练习 252

第22章 面向对象分析和设计 253

22.1 开发周期 253

22.2 模拟报警系统 253

22.2.1 概念化 254

22.2.2 分析和需求 254

22.2.3 高级设计和详细设计 254

22.2.4 其他对象 255

22.2.5 设计类 255

22.2.6 添加其他类 256

22.2.7 事件循环 256

22.3 案例研究 258

22.3.1 三思而后行 259

22.3.2 分而治之 259

22.3.3 邮件格式 259

22.3.4 初步类设计 260

22.3.5 同根和不同根 261

22.3.6 设计接口 262

22.3.7 建立原型 263

22.3.8 80/80规则 263

22.3.9 设计PostMasterMessage类 264

22.3.10 应用程序编程接口 264

22.3.11 小组编程 265

22.3.12 需要不断考虑的设计因素 265

22.3.13 使用驱动程序 266

22.4 总结 271

22.5 问与答 271

22.6 作业 272

22.6.1 测验 272

22.6.2 答案 272

22.6.3 练习 272

第23章 创建模板 273

23.1 什么是模板 273

23.2 模板实例 273

23.3 模板的定义 274

23.4 使用模板实例 279

23.5 总结 283

23.6 问与答 284

23.7 作业 284

23.7.1 测验 284

23.7.2 答案 284

23.7.3 练习 285

第24章 处理异常和错误 286

24.1 程序中的各种错误 286

24.2 处理意外情况 287

24.3 异常 287

24.4 使用try块和catch块 290

24.4.1 捕获异常 291

24.4.2 使用多条catch语句 291

24.4.3 使用引用以多态方式捕获异常 291

24.5 编写专业级代码 295

24.5.1 大括号 295

24.5.2 长代码行 295

24.5.3 switch语句 296

24.5.4 程序文本 296

24.5.5 标识符命名 297

24.5.6 名称的拼写和大写 297

24.5.7 注释 297

24.5.8 设置访问权限 298

24.5.9 类定义 298

24.5.10 包含文件 298

24.5.11 使用const 298

24.6 总结 299

24.7 问与答 299

24.8 作业 299

24.8.1 测验 299

24.8.2 答案 300

24.8.3 练习 300

第七部分 附录 302

附录A 二进制和十六进制 302

A.1 其他进制 302

A.2 不同进制之间的转换 303

A.2.1 二进制 304

A.2.2 为什么使用二进制 304

A.2.3 位、字节和半字节 304

A.2.4 什么是KB 305

A.2.5 二进制数 305

A.3 十六进制 305

附录B 术语表 308

附录C 配套网站 314