《最新C++语言精华 第2版》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:(美)H.希尔特(Herbert Schildt)著;杨长虹等译
  • 出 版 社:北京:电子工业出版社
  • 出版年份:1997
  • ISBN:7505339753
  • 页数:437 页
图书介绍:

第一部分 C++语言基础——C语言 1

第一章 C语言回顾 1

1.1 C语言的起源 1

1.2 C语言是中级语言 2

1.3 C语言是结构化语言 3

1.4 C语言是程序员的语言 4

1.5 C语言的程序结构 5

1.6 库和链接 5

1.7 分离编译 7

1.8 用C++编译程序编译C语言程序 7

第二章 表达式 8

2.1 五种基本数据类型 8

2.2 修饰基本类型 8

2.3 标识符命名 9

2.4 变量 10

2.4.1 变量在哪里说明 10

2.4.2 局部变量 10

2.4.3 形式参数 12

2.4.4 全局变量 13

2.5 存取修饰符 14

2.5.1 const 14

2.5.2 volatile 15

2.6 存储分类符 15

2.6.1 外部的 16

2.6.2 静态变量 16

2.6.2.1 静态局部变量 17

2.6.2.2 静态全局变量 17

2.6.3 寄存器变量 18

2.7 变量初始化 19

2.8 常量 20

2.8.1 十六进制和八进制常量 20

2.8.2 串常量 20

2.8.3 反斜线字符常量 21

2.9 运算符 21

2.9.1 赋值运算符 21

2.9.2 赋值中的类型转换 22

2.9.3 多重赋值 23

2.9.4 算术运算符 23

2.9.5 增量和减量运算符 24

2.9.6 关系和逻辑运算符 24

2.9.7 位操作符 26

2.9.9 指针操作符&和* 29

2.9.8 ?操作符 29

2.9.10 编译时操作符sizeof 31

2.9.11 逗号操作符 31

2.9.12 点(.)和箭头(—>)操作符 32

2.9.13 方括号[]和括号()操作符 32

2.9.14 关于优先级的小结 32

2.10 表达式 33

2.10.1 求值顺序 33

2.10.2 表达式中的类型转换 33

2.10.3 构成符 34

2.10.4 空格与括号 35

2.10.5 C语言中的简写形式 35

3.2.1 if语句 36

3.2 选择语句 36

第三章 C语言的语句 36

3.1 C语言的真值和假值 36

3.2.2 嵌套的if语句 38

3.2.3 阶梯型if-else-if语句 38

3.2.4 操作符?的替代 40

2.2.5 条件表达式 42

3.2.6 switch开关语句 42

3.2.7 嵌套的switch语句 45

3.3 迭代语句 45

3.3.1 for循环 45

3.3.2 for循环的变化形式 46

3.3.3 无限循环 49

3.3.5 while循环 50

3.3.4 没有循环体的for循环 50

3.3.6 do-while循环 52

3.4 转移语句 53

3.4.1 return语句 53

3.4.2 goto语句 53

3.4.3 break语句 54

3.4.4 exit()函数 55

3.4.5 continue 语句 56

3.5 表达式语句 57

3.6 块语句 57

第四章 数组和字符串 58

4.1 一维数组 58

4.2 产生指向数组的指针 59

4.3 向函数传递一维数组 59

4.4 字符串 60

4.5 二维数组 62

4.5.1 字符串数组 65

4.6 多维数组 66

4.7 带下标的指针 66

4.8 数组初始化 68

4.8.1 变长数组的初始化 69

4.9 棋盘游戏实例 69

第五章 指针 73

5.1 指针是什么 73

5.2 指针变量 73

5.3 指针运算符 74

5.4.2 指针运算 75

5.4.1 指针赋值 75

5.4 指针表达式 75

5.4.3 指针比较 76

5.5 指针和数组 77

5.5.1 指针数组 78

5.6 多级间址 79

5.7 指针的初始化 80

5.8 指针函数的指针 81

5.9 C语言的动态分配函数 83

5.10 指针应用中的某些问题 84

第六章 函数 87

6.1 函数的一般形式 87

6.2 函数作用域的规则 87

6.3.1 传值调用与引用调用 88

6.3 函数变元 88

6.3.2 引用调用的建立 89

6.3.3 用数组调用函数 90

6.4 传给main()的变元argc与argv 91

6.5 返回语句 93

6.5.1 从函数返回 94

6.5.2 返回值 95

6.6 返回非整型值的函数 96

6.7 函数原型 97

6.8 返回指针 98

6.9 void类型的函数 99

6.10 main()返回什么 100

6.11 递归 100

6.13 传统的与现代的函数说明 101

6.12 说明变长参数表 101

6.14 实现问题 102

6.14.1 参数和通用函数 102

6.14.2 效率 102

第七章 结构、联合、枚举和用户定义的类型 104

7.1 结构 104

7.1.1 引用结构元素 105

7.1.2 结构赋值 106

7.2 结构数组 106

7.3 向函数传递结构 107

7.3.1 向函数传递结构元素 107

7.3.2 向函数传递完整结构 107

7.4 结构指针 108

7.4.2 结构指针的应用 109

7.4.1 定义结构指针 109

7.6 位域 111

7.5 结构中的数组和结构 111

7.7 联合 113

7.8 枚举 115

7.9 用sizeof增强移植性 117

7.10 类型定义typedef 118

第八章 控制台I/O 119

8.1 一个重要的应用说明 119

8.2 读写字符 119

8.2.1 getchar()的有关问题 120

8.2.2 getchar()的替代 120

8.3 读写字符串 121

8.5 printf() 123

8.4 格式化的控制台I/O 123

8.5.1 打印字符 124

8.5.2 打印数字 124

8.5.3 显示一个地址 125

8.5.4 %n描述符 125

8.5.5 格式化代码修饰符 126

8.5.6 最小域宽描述符 126

8.5.7 精度描述符 127

8.5.8 调整输出 128

8.5.9 处理其它数据类型 128

8.5.10 *和#修饰符 128

8.6.1 格式说明符 129

8.6.2 输入数字 129

8.6 scanf() 129

8.6.3 输入无符号整数 130

8.6.4 用scanf()读单个字符 130

8.6.5 读字符串 130

8.6.6 读入地址 131

8.6.7 %n描述符 131

8.6.8 使用一个扫描集 131

8.6.9 丢弃不期望的空白符 132

8.6.10 控制串中的非空白符 132

8.6.11 必须向scanf()传递地址 132

8.6.12 格式化修饰符 132

8.6.13 压缩输入 133

9.2 C语言与C++语言的I/O 134

9.3 流和文件 134

9.1 ANSI C I/O与Unix I/O 134

第九章 ANSI C的标准文件I/O 134

9.3.1 流 135

9.3.1.1 文本流 135

9.3.1.2 二进制流 135

9.3.2 文件 135

9.4 文件系统基础 136

9.4.1 文件指针 136

9.4.2 打开一个文件 137

9.4.3 关闭一个文件 138

9.4.4 写一个字符 138

9.4.5 读一个字符 138

9.4.6 使用fopen()、gerc()、putc()和fclose() 139

9.4.7 使用feof() 140

9.4.8 使用fputs()和fgets()操作字符串 141

9.4.9 rewind() 142

9.4.10 ferror() 143

9.4.11 删除文件 144

9.4.12 清除一个流 145

9.5 fread()和fwrite() 145

9.5.1 使用fread()和fwrite() 145

9.6 fseek()和随机存取I/O 146

9.7 fprintf()和fscanf() 147

9.8 标准流 148

9.8.1 控制台I/O连接 149

9.8.2 使用freopen()重定向标准流 149

10.2 #define 151

10.1 预处理程序 151

第十章 C语言的预处理程序和注释 151

10.2.1 定义类函数宏 152

10.3 #error 153

10.4 #include 153

10.5 条件编译指令 154

10.5.1 #if,#else,#elif和#endif 154

10.5.2 #ifdef和#ifndef 156

10.6 #undef 157

10.7 使用defined 157

10.8 #line 157

10.9 #pragma 158

10.10 #和##预处理操作符 158

10.12 注释 159

10.11 预定义的宏名 159

第十一章 C++概述 161

11.1 C++的起源 161

第二部分 C++的专有特征 161

11.2 面向对象的程序设计是什么 162

11.2.1 封装 162

11.2.2 多态性 163

11.2.3 继承性 163

11.3 C++的程序设计风格 163

11.3.1 关于I/O操作符 165

11.3.2 定义局部变量 166

11.4 C++的类 167

11.5 函数重载 170

11.7 继承性 172

11.6 运算符重载 172

11.8 构造函数和析构函数 175

11.9 C++的关键字 178

11.10 C++程序的一般结构 179

第十二章 类和对象 180

12.1 类 180

12.2 结构和类 183

12.3 联合和类 184

12.3.1 无名联合 185

12.4 友元函数 186

12.5 友元类 189

12.6 内联函数 190

12.7 在类中定义内联函数 192

12.8 参数化的构造函数 193

12.8.1 带一个参数的构造函数:特例 194

12.9 静态类成员 195

12.9.1 静态数据成员 195

12.9.2 静态成员函数 198

12.10 何时执行构造函数和析构函数 199

12.11 作用域分辨符 200

12.12 嵌套类 201

12.13 局部类 201

12.14 向函数传递对象 202

12.15 返回对象 203

12.15 对象赋值 204

第十三章 数组、指针和引用 205

13.1 对象数组 205

13.1.1 创建初始化与未初始化数组 206

13.2 指向对象的指针 207

13.3 C++指针的类型检查 209

13.4 this指针 209

13.5 指向派生类型的指针 211

13.6 指向类成员的指针 212

13.7 引用 214

13.7.1 引用参数 214

13.7.2 向对象传递引用 217

13.7.3 返回引用 218

13.7.4 独立引用 218

13.7.5 对引用的限制 219

13.8 格式问题 219

13.9 C++的动态分配符 220

13.9.1 分配对象 222

第十四章 函数和运算符重载 226

14.1 函数重载 226

14.1.1 函数重载和二义性 227

14.2 重载的过去和现在 230

14.3 重载构造函数 230

14.4 求重载函数的地址 231

14.5 运算符重载 232

14.5.1 创建成员operator函数 233

14.5.2 建立增值和减值运算符的前缀和后缀形式 236

14.5.3 重载缩写运算符 237

14.5.4 运算符重载限制 237

14.6 使用friend重载运算符 238

14.6.1 使用friend重载++和-- 239

14.6.2 friend operator函数增加了灵活性 241

14.7 重载new和delete 242

14.7.1 重载数组的new和delete 246

14.8 重载某些特殊运算符 247

14.8.1 重载[] 248

14.8.2 重载() 250

14.8.3 重载—> 251

14.9 重载逗号运算符 252

第十五章 继承性 254

15.1 基类存取控制 254

15.1.1 继承和受保护成员 255

15.1.2 受保护基类的继承 258

15.2 继承多个基类 259

15.3.1 何时执行构造函数和析构函数 260

15.3 构造函数、析构函数和继承 260

15.3.2 向基类构造函数传递参数 263

15.4 授权存取 265

15.5 虚基类 267

第十六章 虚函数和多态性 271

16.1 虚函数 271

16.1.1 继承虚属性 273

16.1.2 虚函数的层次性 274

16.2 纯虚函数 276

16.2.1 抽象类 278

16.3 使用虚函数 278

16.4 早期和后期联编 280

17.2 基本的流类 281

17.1 C++的流 281

第十七章 C++的I/O系统基础 281

17.2.1 C++的预定义流 282

17.3 格式化的I/O 282

17.3.1 用ios成员格式化 282

17.3.2 设置格式标志 283

17.3.3 清除格式标志 284

17.3.4 setf()的重载形式 284

17.3.5 检查格式标志 286

17.3.6 设置所有标志 288

17.3.7 使用width(),precision()和fill() 289

17.3.8 用操纵符格式化I/O 290

17.4 重载<<和>> 291

17.4.1 创建自己的插入符 292

17.4.2 创建自己的提取符 296

17.5 创建自己的操纵符函数 298

17.5.1 创建无参数的操纵符 298

17.5.2 创建带参数的操纵符 300

17.6 关于老式流类库的简短说明 303

第十八章 C++文件I/O 304

18.1 fstream.h和文件类 304

18.2 打开和关闭文件 304

18.3 读和写文本文件 306

18.4 二进制I/O 308

18.4.1 put()和get() 308

18.4.2 read()和write() 309

18.5 另外的get()函数 311

18.6 getline() 312

18.7 跟踪EOF 313

18.8 ignore()函数 314

18.9 peek()和putback() 315

18.10 flush() 315

18.11 随机存取 316

18.11.1 得到当前文件的位置 318

18.12 I/O状态 319

18.13 定制的I/O和文件 321

第十九章 基于数组的I/O 323

19.1 基于数组的类 323

19.2 创建基于数组的输出流 323

19.3 使用数组作输入 325

19.5 基于数组的输入/输出流 326

19.4 使用基于数组流的ios成员函数 326

19.6 数组内随机存取 327

19.7 使用动态数组 327

19.8 操纵符和基于数组的I/O 328

19.9 定制的提取符和插入符 329

19.10 基于数组格式的用途 331

第二十章 模板 332

20.1 样板函数 332

20.1.1 带两个样板类型的函数 334

20.1.2 显式重载样板函数 334

20.1.3 样板函数的限制 335

20.2 样板函数的应用 336

20.2.1 样板排序 336

20.2.2 紧缩数组 337

20.3 样板类 338

20.3.1 带两个样板数据类型的例子 341

20.4 创建样板数组类 342

第二十一章 异常处理 344

21.1 异常处理的基础 344

21.1.1 使用多重catch语句 348

21.2 异常处理选项 349

21.2.1 捕获所有异常 349

21.2.2 制异常 351

21.2.3 重复抛出异常 353

21.3 异常处理的应用 353

第二十二章 杂项问题和高级论题 355

22.1 缺省函数变元 355

22.1.2 缺省变元与重载 358

22.1.1 正确使用缺省变元 358

22.2 创建转换函数 359

22.3 拷贝构造函数 362

22.4 动态初始化 364

22.5 常量和可变成员函数 365

22.6 使用关键字asm 365

22.7 连接说明 366

22.8 建议的ANSIC++标准新增加的特性 366

22.8.1 新的类型强制运算符 367

22.8.2 布尔数据类型 368

22.8.3 使用名字域 368

22.8.4 运行时类型标识 368

22.8.5 显式构造函数 370

22.8.8 新的首标文件 371

22.9 C和C++之间的差别 371

22.8.6 使用mutable 371

22.8.7 wchar_t类型 371

第三部分 C++的一些应用 373

第二十三章 字符串类 373

23.1 定义字符串类型 373

23.2 字符串类 374

23.3 构造函数和析构函数 376

23.4 字符串I/O 377

23.5 赋值函数 378

23.6 连接 379

23.7 子字符串减法 381

23.8 关系运算符 382

23.9 各种字符串函数 383

23.10 完整的字符串类 384

23.11 StrType的使用 391

第二十四章 弹出式窗口类 393

24.1 弹出式窗口 393

24.2 创建一些视频支持函数 394

24.2.1 PC视频系统 394

24.2.2 存取BIOS 395

24.2.3 确定视频RAM的地址 396

24.2.4 写视频RAM 397

24.2.5 置光标 397

24.3 窗口类 398

24.4 显示和移去窗口 400

24.5 窗口I/O 402

24.6 一个完整的窗口系统 406

24.7 修改 416

第二十五章 链表类 417

25.1 简单双向链表类 417

25.1.1 store()函数 419

25.1.2 remove()函数 420

25.1.3 显示表 421

25.1.4 查找表中的对象 422

25.1.5 双向链表样板程序 422

25.2 定义一个样板双向链表类 427

25.2.1 样板链表类 427

25.2.2 完整的样板双向链表类 429

25.3 其它实现方法 436

附录 推荐的标准类库 437