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

  • 购买积分:14 如何计算积分?
  • 作  者:李春葆,陶红艳,金晶编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2008
  • ISBN:9787302166429
  • 页数:403 页
图书介绍:本书介绍C++语言程序设计的方法。

第1章 C++概述 1

1.1 计算机系统的组成 1

1.1.1 中央处理单元 2

1.1.2 主存 2

1.1.3 输入输出设备 2

1.1.4 辅助存储器 2

1.2 程序设计语言和程序设计方法 3

1.2.1 程序和程序设计语言 3

1.2.2 结构化程序设计 4

1.2.3 面向对象的程序设计 4

1.3 C++的发展历史 5

1.4 C++的特点 6

1.4.1 跟C相比的一些特点 6

1.4.2 与面向对象有关的一些特点 8

1.5 C++程序结构 8

1.5.1 一个简单的C++程序 9

1.5.2 C++程序的组成 10

1.5.3 C++程序的书写格式 11

1.6 C++程序开发过程 11

练习题1 14

第2章 C++的基本要素 15

2.1 标识符 15

2.2 C++数据类型 16

2.2.1 C++内部数据类型 16

2.2.2 修饰符 17

2.3 变量 18

2.3.1 变量的概念 18

2.3.2 变量的声明和定义 19

2.4 常量 20

2.4.1 文字常量 20

2.4.2 名字常量 22

2.5 运算符和表达式 22

2.5.1 算术运算符 22

2.5.2 赋值运算符 23

2.5.3 关系运算符 24

2.5.4 逻辑运算符 24

2.5.5 自增、自减运算符 25

2.5.6 条件运算符 25

2.5.7 逗号运算符 26

2.5.8 位运算符 26

2.5.9 sizeof运算符 27

2.5.10 运算符优先级 28

2.5.11 数据类型转换 29

练习题2 32

第3章 输入和输出语句 34

3.1 I/O数据流和标准I/O设备 34

3.2 输出 35

3.2.1 使用I/O操作符 35

3.2.2 使用ios成员函数 38

3.2.3 使用cout的相关函数 41

3.3 输入 43

3.3.1 使用I/O操作符 43

3.3.2 使用cin的成员函数 44

练习题3 45

第4章 控制语句 48

4.1 顺序控制语句 48

4.1.1 表达式语句 48

4.1.2 函数调用语句 49

4.1.3 空语句 49

4.1.4 复合语句 49

4.2 选择控制语句 49

4.2.1 if语句 49

4.2.2 if...else语句 50

4.2.3 if...else if语句 51

4.2.4 switch语句 53

4.3 循环控制语句 55

4.3.1 while语句 55

4.3.2 do-while语句 56

4.3.3 for语句 57

4.4 跳转语句 59

4.4.1 break语句 59

4.4.2 continue语句 59

4.4.3 goto语句 60

练习题4 61

第5章 函数和预处理 66

5.1 函数概述 66

5.2 函数的定义和调用 67

5.2.1 函数定义 67

5.2.2 函数声明 68

5.2.3 函数调用 68

5.3 函数的参数传递 69

5.3.1 函数调用机制 69

5.3.2 参数传递的几种方式 70

5.4 函数传递和返回const值 74

5.4.1 传递const值 74

5.4.2 返回const值 74

5.5 局部变量和全局变量 75

5.5.1 局部变量 75

5.5.2 全局变量 76

5.6 变量的存储类别 77

5.6.1 作用域和生存期 78

5.6.2 局部变量的存储类别 79

5.6.3 全局变量的存储类别 81

5.7 多文件程序中函数的声明 83

5.8 函数的默认参数值 84

5.9 内联函数 86

5.10 递归函数 87

5.11 函数重载 89

5.12 文件与预处理 90

5.12.1 宏定义命令 90

5.12.2 文件包含命令 91

5.12.3 条件编译命令 92

5.12.4 断言 94

练习题5 95

第6章 数组 101

6.1 一维数组 101

6.1.1 一维数组的定义 101

6.1.2 一维数组的初始化 102

6.1.3 一维数组的赋值 102

6.1.4 一组数组的越界 102

6.1.5 一组数组应用示例 103

6.2 二维数组 106

6.2.1 二维数组的定义 106

6.2.2 二维数组的初始化 106

6.2.3 省略第一维大小 107

6.2.4 二组数组的应用示例 107

6.3 多维数组 108

6.4 数组作为函数参数 110

6.5 字符数组和字符串数组 111

6.5.1 字符数组 111

6.5.2 字符串数组 116

练习题6 118

第7章 指针 122

7.1 什么是指针 122

7.2 指针变量的定义和初始化 123

7.2.1 指针变量的定义 123

7.2.2 指针变量的运算 123

7.2.3 指针变量的初始化 126

7.3 指针和数组的关系 128

7.4 指针和动态数组 130

7.4.1 用new与delete运算符为指针分配、释放内存 130

7.4.2 直接用指针变量操作数据 131

7.4.3 动态数组 132

7.4.4 指针的浅复制与深复制 133

7.5 const指针 135

7.5.1 指向常量的指针变量 135

7.5.2 指针常量 136

7.6 指针变量与函数 136

7.6.1 指针变量作为函数参数 137

7.6.2 指针型函数 137

7.6.3 函数指针 138

7.7 指针与多维数组 139

7.7.1 指向数组元素的指针 140

7.7.2 指针数组 140

7.7.3 数组指针 141

练习题7 143

第8章 结构体和共用体 148

8.1 结构体 148

8.1.1 结构体类型声明 148

8.1.2 结构体变量定义 149

8.1.3 结构体变量的使用 150

8.1.4 结构体数组 153

8.1.5 结构体指针变量 154

8.2 位域 159

8.3 共用体 161

8.4 枚举类型 163

8.5 用typedef定义类型 164

练习题8 164

第9章 类和对象 170

9.1 类 170

9.1.1 类的声明 170

9.1.2 用文件组织类 172

9.1.3 标识符的类作用域 173

9.1.4 类的成员函数 173

9.1.5 访问权限 174

9.1.6 类中公有和私有的顺序 175

9.1.7 类与结构体类型的区别 175

9.2 对象 175

9.2.1 对象的定义格式 175

9.2.2 对象的数据成员访问方法 176

9.2.3 对象的成员函数调用方法 176

9.2.4 类对象的存储空间 177

9.2.5 类对象的赋值运算 179

9.2.6 对象的生存期 179

9.3 构造函数 180

9.3.1 什么是构造函数 180

9.3.2 调用构造函数 181

9.3.3 构造函数的默认参数 183

9.3.4 重载构造函数 183

9.3.5 类对象数组和构造函数 184

9.3.6 复制构造函数 186

9.4 析构函数 187

9.4.1 什么是析构函数 187

9.4.2 析构函数的性质 188

9.4.3 默认析构函数 189

9.5 对象浅复制与深复制 189

9.5.1 对象浅复制 189

9.5.2 对象深复制 191

9.6 常类型 192

9.6.1 常对象 192

9.6.2 常对象成员 193

9.7 静态成员 195

9.7.1 静态数据成员 195

9.7.2 静态成员函数 196

9.8 类成员指针 198

9.8.1 类数据成员指针 199

9.8.2 类成员函数指针 199

9.9 子对象 200

9.9.1 has-a关系 200

9.9.2 子对象构造函数的设计和执行次序 202

9.9.3 子对象析构函数的设计和执行次序 203

9.10 嵌套类和局部类 204

9.10.1 嵌套类 204

9.10.2 局部类 206

9.11 this指针 206

9.12 类和对象的应用实例 209

练习题9 212

第10章 引用 220

10.1 引用的概念 220

10.1.1 建立引用的方法 220

10.1.2 引用的特点 220

10.2 引用类型及限制 222

10.2.1 指针引用 222

10.2.2 对象引用 223

10.2.3 引用类型的限制 224

10.3 引用作为函数参数 225

10.3.1 变量引用作为函数参数 225

10.3.2 对象引用作为函数参数 227

10.4 引用返回值 227

10.5 常引用 229

10.6 引用的应用实例 230

练习题10 232

第11章 友元 236

11.1 友元函数 236

11.2 友元类 238

11.3 友元应用实例 240

练习题11 243

第12章 运算符重载 246

12.1 运算符重载概述 246

12.2 重载单目运算符 249

12.2.1 重载++、--单目运算符 249

12.2.2 重载->单目运算符 250

12.3 重载双目运算符 251

12.3.1 重载双目运算符为成员函数 251

12.3.2 重载双目运算符为友元函数 256

12.4 重载比较运算符 257

12.5 重载赋值运算符 259

12.5.1 重载运算符“+=”和“-=” 259

12.5.2 重载运算符“=” 260

12.6 重载下标运算符 262

12.7 重载运算符new与delete 263

12.8 重载逗号运算符 265

12.9 重载类型转换运算符 266

12.10 重载函数调用运算符 267

12.11 运算符重载应用实例 268

练习题12 272

第13章 模板 276

13.1 模板的概念 276

13.2 函数模板 277

13.2.1 声明函数模板 277

13.2.2 编写函数模板方法 278

13.2.3 使用函数模板 278

13.2.4 用户定义的参数类型 282

13.3 类模板 283

13.3.1 声明类模板 283

13.3.2 使用类模板 284

13.4 类模板作为函数参数 286

13.5 类模板的友元函数 287

13.6 模板应用实例 287

练习题13 290

第14章 派生和继承 293

14.1 继承的概念 293

14.2 派生类 294

14.2.1 派生类的定义格式 294

14.2.2 派生类生成过程 295

14.2.3 类成员访问权限 296

14.3 继承方式 297

14.3.1 公有继承 297

14.3.2 私有继承 297

14.3.3 保护继承 297

14.3.4 继承方式小结 298

14.4 派生类继承成员的调整 300

14.4.1 恢复访问权限 300

14.4.2 继承成员的重定义 301

14.4.3 继承成员的重命名 302

14.4.4 屏蔽继承成员 302

14.5 派生类对象的存储组织 302

14.6 派生类的构造函数 304

14.7 派生类的析构函数 307

14.8 基类对象和派生类对象的使用关系 309

14.8.1 派生类对象能作为基类对象处理 309

14.8.2 用基类指针指向一个派生类对象 310

14.8.3 用派生类指针强制指向基类的对象 312

14.9 类层次中的类模板 313

14.9.1 从模板类派生类模板 313

14.9.2 从非模板类派生类模板 314

14.9.3 从类模板派生非模板类 315

14.10 虚基类 315

14.10.1 重复继承的二义性问题 316

14.10.2 作用域分辨符 316

14.10.3 虚基类 317

14.11 派生和继承应用实例 324

练习题14 328

第15章 虚函数和抽象类 334

15.1 函数绑定 334

15.2 虚函数及其限制 337

15.2.1 虚函数声明 337

15.2.2 多继承中的虚函数 339

15.2.3 虚函数的限制 342

15.3 纯虚函数和抽象类 344

15.3.1 纯虚函数 344

15.3.2 抽象类 346

15.4 抽象类应用实例 347

练习题15 351

第16章 C++文件流 354

16.1 什么是文件流 354

16.2 C++的流类库 355

16.3 文件操作 356

16.3.1 文件的打开与关闭 356

16.3.2 文本文件的读写 358

16.3.3 二进制文件的读写 363

16.4 文件的随机读写 364

16.4.1 输出流随机访问函数 364

16.4.2 输入流随机访问函数 365

16.5 重载I/O运算符 367

16.5.1 重载输出运算符“<<” 367

16.5.2 重载输入运算符“>>” 368

16.6 文件流应用实例 373

练习题16 375

第17章 异常处理 378

17.1 异常处理概述 378

17.2 C++异常处理的实现 379

17.2.1 异常处理的语法 379

17.2.2 捕获所有类型的异常 382

17.2.3 带有异常声明的函数原型 383

17.3 异常处理中对象的构造与析构 384

17.4 异常处理应用实例 386

练习题17 388

第18章 名字空间 391

18.1 名字空间概述 391

18.1.1 定义名字空间 391

18.1.2 访问名字空间成员 392

18.1.3 未命名的名字空间 396

18.2 名字空间的嵌套 397

18.3 std名字空间 399

练习题18 401

参考文献 403