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

  • 购买积分:14 如何计算积分?
  • 作  者:李雁妮,陈平,王献青编著
  • 出 版 社:西安:西安电子科技大学出版社
  • 出版年份:2009
  • ISBN:9787560621517
  • 页数:406 页
图书介绍:本书内容分三部分,对C++语言的基本机制做了较为准确与全面的介绍,重点介绍了C++支持面向对象与类属程序设计的各种语言机制,并对C++标准模板库STL进行了简要阐述。

第一部分 C++语言的基本机制第1章 绪论 2

1.1 C++语言的发展历史及特点 2

1.1.1 C++语言的发展历史 2

1.1.2 C++语言的特点 3

1.2 学习C++语言的注意事项 3

1.2.1 如何学习C++ 3

1.2.2 如何使用本教材 4

1.3 C++语言中一些重要的程序设计理念 5

小结 7

练习题 7

第2章 C++语言概述 8

2.1 C++语言及程序设计范型 8

2.1.1 C++语言的概念 8

2.1.2 程序设计范型 9

2.1.3 第一个C++程序及C++程序结构 9

2.2 过程程序设计范型 10

2.2.1 过程程序设计范型介绍 10

2.2.2 变量和算术运算符 11

2.2.3 条件判断与循环 12

2.2.4 指针与数组 12

2.3 模块化程序设计范型 13

2.4 数据抽象 14

2.5 面向对象程序设计范型 17

2.6 类属/通用程序设计范型 19

小结 21

练习题 21

第3章 类型与声明 22

3.1 类型 22

3.2 C++中的基本数据类型 24

3.2.1 布尔类型 24

3.2.2 字符类型 25

3.2.3 整数类型 26

3.2.4 浮点类型 27

3.2.5 C++数据类型存储量的大小 29

3.3 void类型 30

3.4 枚举类型 30

3.5 类型的声明与定义 32

3.5.1 明的语法规则 33

3.5.2 C++中的标识符 34

3.5.3 标识符的作用域 35

3.5.4 typedef 35

3.6 类型转换 36

小结 37

练习题 38

第4章 运算符与语句 39

4.1 C++运算符概述 39

4.1.1 算术运算符和自增、自减运算符 40

4.1.2 关系和逻辑运算符 42

4.1.3 位运算符 43

4.1.4 内存申请与释放运算符new和delete 46

4.1.5 赋值运算符 47

4.1.6 类型转换运算符 47

4.1.7 C++运算符概览及其优先级次序 49

4.2 C++语句 50

4.2.1 表达式语句和空语句 51

4.2.2 注释语句及意义 51

4.2.3 复合语句 52

4.2.4 选择判断语句 52

4.2.5 循环语句 57

4.2.6 跳转语句 62

小结 65

练习题 66

第5章 指针、数组和结构 67

5.1 指针 67

5.1.1 指针与指针变量 67

5.1.2 为什么要使用指针变量 68

5.1.3 指针变量的声明与定义 69

5.1.4 指针变量的操作 69

5.1.5 常量零(0) 71

5.2 数组 71

5.2.1 数组的定义与初始化 71

5.2.2 字符串字面值 73

5.3 指向数组的指针 74

5.3.1 指向一维数组的指针 74

5.3.2 指向多维数组的指针 75

5.3.3 取数组元素及数组的遍历 76

5.4 指向函数的指针 80

5.5 指向void*的指针 81

5.6 常量 82

5.7 引用 85

5.8 结构 88

小结 94

练习题 95

第6章 函数 96

6.1 函数的声明 98

6.1.1 函数接口/原型声明 98

6.1.2 函数的定义 98

6.2 函数的参数传递 99

6.3 函数的返回值 101

6.4 函数名的过载/重载 102

6.4.1 函数名过载/重载的基本概念 102

6.4.2 重载函数的匹配规则 102

6.4.3 重载函数与函数的返回类型 105

6.4.4 重载与作用域 105

6.5 缺省的函数参数值 106

6.6 递归 107

6.6.1 递归的基本概念 107

6.6.2 递归的定义及递归函数的编写模式 108

6.7 参数数目可变的函数 110

6.8 函数指针 114

6.9 综合示例 115

小结 128

练习题 128

第7章 名字空间与异常处理 129

7.1 模块与接口的基本概念 129

7.2 名字空间 131

7.2.1 名字空间的基本概念 131

7.2.2 名字空间中的名字解析 132

7.2.3 模块的多重接口 137

7.3 异常处理 138

7.4 综合示例 141

小结 146

练习题 147

第8章 源文件和程序 148

8.1 分别编译 149

8.2 链接 149

8.2.1 链接与一致性的基本概念 149

8.2.2 头文件 151

8.2.3 #include指令 152

8.2.4 用户头文件内容的设计 152

8.3 头文件的有效使用 154

8.4 命令行参数 156

8.5 程序 158

8.5.1 程序的执行 158

8.5.2 程序的终止 159

小结 159

练习题 160

第二部分 C++的抽象机制 162

第9章 类与对象 162

9.1 类的基本概念 162

9.2 类中成员 163

9.2.1 类中的成员 163

9.2.2 类的访问控制 165

9.2.3 类的构造函数 168

9.2.4 类的静态成员 170

9.2.5 对象的拷贝 173

9.2.6 常量(Const或称只读)成员函数 175

9.2.7 对象的自身引用——this 176

9.3 定义有效、高质量的类 178

9.4 对象 180

9.4.1 对象是什么 180

9.4.2 C++中对象的类别 182

9.4.3 对象的析构——析构函数 183

9.4.4 默认构造函数 184

9.4.5 几种主要类别对象的构造与析构 184

9.4.6 对象的构造与析构次序 187

9.5 综合示例 189

小结 195

练习题 196

第10章 操作符重载 198

10.1 概述 198

10.2 操作符重载 199

10.2.1 二元操作符的重载 200

10.2.2 一元操作符的重载 201

10.3 类型转换操作符 202

10.3.1 类型转换函数 202

10.3.2 歧义性(二义性)问题 204

10.4 友员 204

10.5 大型对象 206

10.6 类中应具有的基本操作 207

10.7 几种特殊操作符的重载 211

10.7.1 下标运算符的重载 211

10.7.2 函数调用操作符的重载 212

10.7.3 指针/指向操作符的重载 214

10.7.4 自增、自减操作符的重载 216

10.7.5 流输入与流输出操作符的重载 217

10.8 综合示例 219

小结 237

练习题 238

第11章 继承与多态 239

11.1 概述 239

11.2 子类/派生类 240

11.2.1 子类/派生类与继承的基本概念 240

11.2.2 子类对象的存储结构 242

11.2.3 子类中的成员 242

11.2.4 子类的构造与析构函数 243

11.2.5 子类对象拷贝 246

11.2.6 public、protected和private继承 247

11.3 虚函数与多态性 253

11.3.1 类型域 253

11.3.2 虚拟函数 255

11.3.3 抽象基类与实例类 257

11.3.4 多态 259

11.3.5 虚拟的析构函数 261

11.4 运行时的类型识别 263

11.4.1 dynamic_cast运算符 263

11.4.2 type_id运算符 266

11.5 指向类成员的指针 266

11.5.1 指向类成员的指针 266

11.5.2 指向类的成员函数指针的应用场合 268

11.6 多重继承 270

11.7 综合示例 273

小结 279

练习题 280

第12章 模板 283

12.1 概述 283

12.2 类模板 285

12.2.1 类模板的定义 285

12.2.2 类模板参数及其限制 288

12.3 函数模板 289

12.3.1 函数模板的定义 289

12.3.2 函数模板的重载 290

12.3.3 函数调用的匹配原则 292

12.3.4 编写函数模板时的注意事项 292

12.4 模板与继承 297

12.5 综合示例 299

小结 313

练习题 313

第13章 异常处理 314

13.1 概述 314

13.2 C++异常处理结构try、throw和catch 315

13.2.1 抛出异常 315

13.2.2 重新抛出异常 316

13.2.3 捕获所有的异常 317

13.3 异常类层次 317

13.4 捕获new操作所产生的异常 318

13.5 C++标准库异常层次 321

小结 321

练习题 322

第三部分 C++标准模板库STL简介第14章 string类 324

14.1 string概述 324

14.2 string类的构造函数与析构函数 324

14.3 string类重载的操作符 325

14.4 string类的成员函数 328

14.5 string的基本操作 329

14.5.1 元素访问 329

14.5.2 赋值 330

14.5.3 从string转换到C风格的字符串 331

14.5.4 字符串的比较 331

14.5.5 附加与插入 333

14.5.6 查找子串 334

14.5.7 替换 335

14.5.8 求子串 336

14.5.9 string对象的大小和容量 336

14.5.10 输入输出 336

14.6 C风格的字符串 337

14.6.1 C字符串操作函数 337

14.6.2 将数值字符串转换到数值的函数 338

14.6.3 字符分类 338

14.7 迭代器 339

14.8 字符串流处理 340

小结 340

练习题 340

第15章 C++输入/输出系统基础 342

15.1 C++中的流概述 342

15.1.1 C++的输入/输出流类库中的头文件 343

15.1.2 输入/输出流类和对象 343

15.2 输出流 344

15.3 输入流 345

15.3.1 流读取运算符 345

15.3.2 用于输入的一些成员函数 346

15.4 成员函数read和write的无格式输入/输出 347

15.5 流操纵算子 347

15.5.1 设置整数流的基数 348

15.5.2 设置浮点数精度 348

15.5.3 设置输出域宽 350

小结 351

练习题 352

第16章 标准模板库STL简介 353

16.1 STL概述 353

16.1.1 容器 353

16.1.2 算法 353

16.1.3 迭代器 354

16.1.4 其它STL元素 354

16.2 容器类 355

16.3 STL类的一般操作原理 356

16.4 vector容器 357

16.4.1 通过迭代器访问vector矢量中的元素 360

16.4.2 vector的其它成员函数 361

16.4.3 在vector中存储自定义类型的对象 363

16.5 list容器 364

16.6 deque双向队列 369

16.7 关联容器 369

16.7.1 map关联容器类 369

16.7.2 set和multiset关联容器类 372

16.8 容器适配器 373

16.8.1 stack适配器 373

16.8.2 queue适配器 375

16.8.3 priority_queue适配器 376

16.9 算法 376

16.9.1 fill、fill_n、generate与generate_n算法 378

16.9.2 equal、mismatch和lexicographica_compare算法 380

16.9.3 remove、remove_if、remove_copy和remove_copy_if算法 382

16.9.4 replace、replace_if、replace_copy和replace_copy_if算法 384

16.9.5 一些常用的数学算法 386

16.9.6 基本查找与排序算法 388

16.9.7 swap、iter_swap和swap_ranges算法 390

16.9.8 copy_backward、mergeunique和reverse算法 392

16.9.9 inplace_merge、unique_copy和reverse_copy算法 393

16.9.10 集合操作 394

16.9.11 lower_bound、upper_bound和equal_range算法 396

16.9.12 堆排序 398

16.9.13 min和max算法 400

16.10 函数对象 401

16.10.1 一元函数对象与二元函数对象 401

16.10.2 STL内置的函数对象 401

16.10.3 绑定器 404

参考文献 406