《21世纪高等学校规划教材 计算机科学与技术 C++高级程序设计教程》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:张娜编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2017
  • ISBN:9787302470533
  • 页数:374 页
图书介绍:本教程对C++语言进行了深入浅出的介绍,把计算思维运用于程序设计,从基础知识到ANSI-C++标准的最新功能,内容涵盖了从C语言基础知识、数组、类等基本概念到多态、模板等高级概念。教程本着实用的原则,每一小节都结合了可以实现的程序实例,以便读者从第一课开始就可以上机实验。

第1章 C++编程简介 1

1.1 面向对象的方法 1

1.1.1 面向对象编程 1

1.1.2 面向对象方法的由来 1

1.1.3 面向对象的语言 2

1.2 面向对象的基本概念 3

1.2.1 类和对象 3

1.2.2 面向对象的特点 3

1.3 C和C++的关系 4

1.4 C++程序的编写和实现 7

1.4.1 用C++语言编写程序 7

1.4.2 对源程序进行编译 7

1.4.3 对目标文件进行链接 8

1.4.4 运行程序 8

1.4.5 分析运行结果 8

1.5 如何用Visual Studio 2010编写C++程序 8

1.5.1 Visual Studio 2010编程环境 8

1.5.2 Visual Studio 2010的启动 9

1.5.3 新建一个C++项目 9

1.5.4 Visual Studio 2010界面介绍 9

综合实例 13

本章小结 14

习题 14

第2章 C++语言的基础知识 16

2.1 标识符与关键字 16

2.1.1 标识符 16

2.1.2 关键字 16

2.2 常量与变量 17

2.2.1 常量 17

2.2.2 变量 18

2.3 运算符与表达式 18

2.3.1 算术运算符 19

2.3.2 关系运算符 20

2.3.3 逻辑运算符 20

2.3.4 条件运算符 20

2.3.5 位运算符 21

2.4 语句及其流程控制 21

2.4.1 语句 21

2.4.2 if…else选择结构 21

2.4.3 switch选择结构 23

2.4.4 while语句 24

2.4.5 do…while语句 26

2.4.6 for循环结构 27

2.4.7 程序中止函数exit() 28

2.5 函数 29

2.5.1 函数的结构和函数的定义 29

2.5.2 函数名重载 30

2.5.3 递归函数 31

2.5.4 C++库函数 33

2.6 构造数据类型 34

2.6.1 数组 34

2.6.2 一维数组 34

2.6.3 多维数组 38

2.7 指针 39

2.7.1 指针类型与指针的声明 39

2.7.2 指针变量的引用 40

2.7.3 指向指针的指针 40

2.7.4 指针的运算 42

2.8 数组与指针的关系 43

2.8.1 一维数组指针的表示法 43

2.8.2 二维数组指针的表示法 43

2.8.3 指针与字符串 44

2.8.4 指针数组 46

2.8.5 指针与函数 47

2.8.6 数组指针作为函数参数 48

2.8.7 指向函数的指针 49

2.8.8 返回指针的函数 51

2.8.9 main函数中的参数 52

2.9 结构体、共用体和枚举数据类型 52

2.9.1 结构体类型概述 52

2.9.2 结构体类型变量的定义和引用 53

2.9.3 结构体数组 55

2.9.4 结构体型函数参数以及返回结构体类型值的函数 58

2.9.5 结构体变量和指针 60

2.9.6 枚举类型数据 65

2.9.7 用typedef定义类型 67

综合实例 67

本章小结 70

习题 71

第3章 C++在非面向对象方面的常用新特性 73

3.1 C++的输入与输出简介 74

3.1.1 用cout输出数据流 74

3.1.2 用cin输入数据流 74

3.2 用const定义常量 76

3.3 函数的重载 78

3.4 有默认参数的函数 80

3.5 引用 81

3.5.1 引用的概念 82

3.5.2 将引用作为函数的参数 83

3.5.3 引用和指针的区别 85

3.5.4 常指针与常引用 85

3.5.5 引用小结 88

3.6 动态分配内存 88

3.6.1 new关键字 88

3.6.2 delete运算符 89

3.7 布尔类型 91

3.8 函数原型 92

3.9 作用域运算符 94

3.10 内置函数 95

3.11 C++的注释 97

综合实例 98

本章小结 101

习题 102

第4章 类和对象 104

4.1 面向对象的概念 104

4.1.1 概述 104

4.1.2 面向对象程序设计 105

4.1.3 类和对象简介 106

4.1.4 封装性 107

4.1.5 抽象 107

4.1.6 继承性 108

4.1.7 多态性 108

4.1.8 面向对象程序设计的特点 109

4.1.9 面向对象的软件工程 109

4.2 类 110

4.2.1 类和对象的关系 110

4.2.2 类的定义 111

4.2.3 类和结构体的区别 114

4.3 对象的创建 115

4.4 类的成员函数 121

4.4.1 成员函数的特性 121

4.4.2 内部函数 122

4.4.3 在类外定义成员函数 124

4.4.4 成员函数的存储方式 125

4.5 对象成员的引用 126

4.5.1 通过对象名和成员运算访问对象中的成员 126

4.5.2 通过对象的引用变量访问对象中的成员 127

4.6 构造函数 127

4.6.1 对象的初始化 127

4.6.2 构造函数的作用 129

4.6.3 构造函数的种类 132

4.6.4 用参数初始化表对数据成员初始化 136

4.6.5 构造函数的重载 136

4.6.6 使用默认参数的构造函数 137

4.7 析构函数 139

4.8 对象数组 143

4.8.1 对象数组的定义 143

4.8.2 对象数组的初始化 145

4.9 对象指针 146

4.9.1 指向对象的指针 146

4.9.2 指向对象成员的指针 148

4.9.3 this指针 152

4.10 对象成员 153

4.11 对象创建时内存的动态分配 156

综合实例 159

本章小结 162

习题 163

第5章 关于类和对象的进一步讨论 167

5.1 类的封装性 167

5.1.1 公用接口与私有实现的分离 167

5.1.2 类声明和成员函数定义的分离 168

5.2 作用域和可见性 170

5.2.1 标识符的作用域 170

5.2.2 可见性 174

5.2.3 程序实体的生存期 175

5.2.4 C++的存储属性 175

5.3 类的静态成员 177

5.3.1 类静态成员 177

5.3.2 类静态成员函数 179

5.4 友元 181

5.4.1 友元函数 181

5.4.2 友元类 184

5.5 类模板的基本概念 186

5.6 结构体和类 187

5.7 联合体和类 188

5.8 共享数据的保护 190

5.8.1 常对象 190

5.8.2 用const修饰的类成员 191

5.8.3 常引用 193

5.8.4 指向对象的常指针 195

5.8.5 指向常对象的指针变量 195

5.9 类模板的进一步讨论 196

综合实例 200

本章小结 201

习题 201

第6章 运算符的重载 205

6.1 运算符重载的一般概念 205

6.2 重载运算符的实现 210

6.2.1 重载为类的成员函数 210

6.2.2 重载为类的友元函数 213

6.3 单目运算符重载 214

6.4 双目运算符重载 217

6.5 特殊运算符重载 220

6.5.1 赋值运算符重载 220

6.5.2 下标运算符重载 223

6.5.3 比较运算符重载 223

6.5.4 new和delete运算符重载 225

6.5.5 逗号运算符重载 227

6.5.6 类型转换运算符重载 228

6.5.7 ->运算符重载 234

6.5.8 函数调用运算符重载 235

6.5.9 I/O运算符重载 236

综合实例 237

本章小结 240

习题 240

第7章 类的继承与派生 241

7.1 继承与派生的概念 241

7.2 单继承 243

7.2.1 单继承和派生 243

7.2.2 重名成员 249

7.3 继承中的构造函数与析构函数 254

7.3.1 继承中的构造函数 254

7.3.2 析构函数 262

7.4 多继承与虚基类 263

7.4.1 多继承 264

7.4.2 多继承中的二义性和支配原则 267

7.4.3 虚基类 269

综合实例 272

本章小结 274

习题 274

第8章 多态性和虚函数 276

8.1 C++多态的概念 276

8.1.1 多态概念的引入 277

8.1.2 构成多态的条件 279

8.2 虚函数 281

8.3 虚析构函数 284

8.4 纯虚函数和抽象类 286

综合实例 289

本章小结 296

习题 296

第9章 模板、字符串和异常 298

9.1 C++函数模板 298

9.2 模板类 301

9.2.1 模板类的定义 301

9.2.2 模板类的实例化 302

9.3 C++模板中的函数式参数 304

9.4 C++中的string类和字符串 306

9.4.1 string类的定义 306

9.4.2 转换为char数组字符串 307

9.4.3 string字符串的输入与输出 307

9.5 C++中string字符串的访问和拼接 308

9.5.1 访问字符串中的字符 308

9.5.2 字符串的拼接 308

9.6 C++中string字符串的增、删、改、查 309

9.6.1 插入字符串 309

9.6.2 删除字符串 310

9.6.3 提取子字符串 311

9.6.4 字符串的查找 311

9.7 C++异常处理 313

9.7.1 C++的异常引入 313

9.7.2 捕获异常 314

9.7.3 异常的类型 315

9.8 用throw抛出异常 317

9.8.1 throw关键字 317

9.8.2 不被建议的用法 319

9.9 C++中的exception类 320

综合实例 322

本章小结 324

习题 324

第10章 C++的输入与输出 327

10.1 C++输入与输出的概念 327

10.1.1 输入与输出 327

10.1.2 C++的I/O相对于C的发展 328

10.2 与C++输入和输出有关的类和对象 329

10.2.1 输入输出流类的概念 329

10.2.2 与iostream类库有关的头文件 330

10.2.3 在iostream头文件中定义的流对象 331

10.2.4 在iostream头文件中重载运算符 331

10.3 C++标准输出流详解 332

10.3.1 cout流对象 332

10.3.2 cerr流对象 333

10.3.3 clog流对象 334

10.4 C++格式化输出 334

10.4.1 用控制符控制输出格式 335

10.4.2 用流对象的成员函数控制输出格式 336

10.5 用C++流成员函数put输出单个字符 339

10.6 cin输入流详解 341

10.7 用get()函数读入一个字符 342

10.7.1 不带参数的get函数 342

10.7.2 有一个参数的get函数 343

10.7.3 有三个参数的get函数 344

10.8 用getline()函数读入一行字符 345

10.9 一些与输入有关的istream类成员函数 347

10.9.1 eof函数 347

10.9.2 peek函数 347

10.9.3 putback函数 347

10.9.4 ignore函数 348

10.10 C++中文件的概念 350

10.11 C++中的文件流类与文件流对象 351

10.12 文件的打开与关闭 352

10.12.1 打开文件 352

10.12.2 关闭磁盘文件 354

10.13 对ASCII文件的读写操作 354

10.14 对二进制文件的读写操作 359

10.14.1 用成员函数read和write读写二进制文件 360

10.14.2 与文件指针有关的流成员函数 362

10.14.3 随机访问二进制数据文件 363

10.15 对字符串流的读写操作 365

10.15.1 建立输出字符串流对象 366

10.15.2 建立输入字符串流对象 366

10.15.3 建立输入输出字符串流对象 367

综合实例 370

本章小结 372

习题 372