《Borland C++ 4.0面向对象的程序设计》PDF下载

  • 购买积分:18 如何计算积分?
  • 作  者:费向东,李炳法审稿;邹贻明,郭新明等著
  • 出 版 社:成都:成都科技大学出版社
  • 出版年份:1994
  • ISBN:7561628676
  • 页数:625 页
图书介绍:

目录 1

第一章 基础 1

§1.1 Borland C++工程文件的结构 1

§1.1.1 头文件 1

§1.1.2 一个完整的例程 2

§1.2 变量 6

§1.2.1 作用域 6

§1.2.2 数据类型 8

§1.2.3 存储类 9

§1.2.4 CONST修饰符 9

§1.3 语句 11

§1.2.5 Volatile修饰符 11

§1.3.1 表达式语句 12

§1.3.2 if语句 13

§1.3.3 Switch语句 14

§1.3.4 标号语句 15

§1.3.5 While语句 15

§1.3.6 do while语句 16

§1.3.7 for语句 17

§1.3.8 break语句 17

§1.3.9 continue语句 18

§1.3.10 goto语句 19

§1.3.11 return语句 19

§1.4.1 传送参数给函数 20

§1.4 函数 20

§1.4.2 传递const参数 21

§1.4.3 使用默认参数 21

§1.4.4 从函数返回值 22

§1.4.5 返回常量 22

§1.4.6 返回值的问题 23

§1.4.7 使用函数修饰符 24

§1.5 指针和引用 25

§1.6 在指针和引用中用const 27

§1.7 高级部分 28

§1.7.1 使用嵌入汇编语言 28

§1.7.3 一起使用C和C++ 30

§1.7.2 名字管理 30

§1.7.4 由传值返回大结构 31

§1.7.5 使用枚举 33

§1.7.6 使用内存管理 34

§1.7.7 C调用顺序 36

§1.7.8 Pascal调用顺序 37

§1.7.9 中断处理函数 38

§1.7.10 带变参表的函数 39

第二章 对象和类 41

§2.1 定义类 41

§2.1.1 类标识符 42

§2.1.2 类体 42

§2.2 类的使用 43

§2.2.1 封装 43

§2.2.2 类的存取控制 44

§2.2.3 私有类成员 45

§2.2.4 公有类成员 46

§2.2.5 保护类成员 46

§2.2.6 用于类对象的存储类 48

§2.2.7 类作用域 48

§2.2.8 空类 48

§2.2.9 嵌套类 48

§2.2.10 类实例 50

§2.2.11 不完全类说明 51

§2.3 使用数据成员 51

§2.3.1 静态数据成员 52

§2.3.2 私有静态数据成员 54

§2.3.3 作为数据成员的类对象 55

§2.3.4 用作数据成员的引用 56

§2.3.5 用作数据成员的指针 57

§2.3.6 指向类数据成员的指针 57

§2.3.7 指向对象数据成员的指针 59

§2.4 使用成员函数 59

§2.4.1 简单成员函数 60

§2.4.2 静态成员函数 61

§2.4.3 Const成员函数 62

§2.4.4 Volatile成员函数 63

§2.4.5 inline成员函数 63

§2.4.6 带const自引用指针的成员函数 64

§2.4.7 带volatile自引用指针的成员函数 65

§2.4.9 构造函数 67

§2.4.8 特殊的类函数 67

§2.4.10 析构函数 73

§2.4.11 Friend关键字 75

§2.4.12 友元的特性 76

§2.5 高级部分 77

§2.5.1 指向成员函数的指针 77

§2.5.2 数组和类 79

§2.5.3 成员函数调用分析 84

§2.5.4 类模板 86

§2.5.5 函数模板 93

§3.1 可重用性 96

§3.2 继承 96

第三章 继承 96

§3.3 继承的功效 97

§3.4 C++继承的局限 97

§3.5 对继承的一个不同看法 98

§3.6 单一继承 99

§3.6.1 何时继承 99

§3.6.2 什么不能被继承 99

§3.6.3 基类的访问说明符 100

§3.6.4 设计用于继承的类 101

§3.6.5 向基类传递参数 102

§3.6.6 构造函数的调用顺序 103

§3.6.7 析构函数的调用顺序 104

§3.6.8 “种”类 104

§3.6.10 分辨作用域 107

§3.6.9 派生类的类型转换 107

§3.6.11 特征扩展 110

§3.6.12 特征限制 113

§3.6.13 一个使用单一继承的例子 114

§3.6.14 函数闭包 116

§3.7 多重继承 122

§3.7.1 用多个基类说明一个类 123

§3.7.2 调用基类构造函数 123

§3.7.3 使用虚基类 124

§3.7.4 同时使用虚基类和非虚基类 126

§3.7.5 调用析构函数 126

§3.7.6 使用类型转换 126

§3.7.7 保持基类函数连续 128

§3.7.8 对多重继承使用作用域分辨 129

§3.7.9 保持对内存的跟踪 131

§3.8 高级部分 132

§3.8.1 运行时的考虑 132

§3.8.2 在一个对象中 132

§3.8.3 一个继承调试程序 135

第四章 重载 139

§4.1 为什么应该重载 139

§4.2 函数重载 140

§4.2.1 重载非成员函数 140

§4.2.2 重载成员函数 141

§4.2.3 在一个类层次结构中重载函数 142

§4.2.6 变量匹配 144

§4.2.4 重载不是覆盖 144

§4.2.5 作用域分辨 144

§4.2.7 重载构造函数 145

§4.2.8 一些特殊情况 147

§4.2.9 通过重载的用户转换 148

§4.2.10 重载静态成员函数 151

§4.3 运算符重载 151

§4.3.1 用作函数调用的运算符 152

§4.3.2 重载的运算符用作成员函数 153

§4.3.3 运算符成员函数的注释 155

§4.3.4 重载的运算符用作友元函数 155

§4.3.5 赋值运算符 157

§4.3.6 函数调用运算符() 159

§4.3.7 下标运算符 161

§4.3.8 运算符重载的限制 162

§4.3.9 运算符的作用域分辨 162

§4.4 高级部分 163

§4.4.1 名字管理的规则 164

§4.4.2 重载new和detele 166

§4.4.3 前缀和后缀运算符 169

第五章 多态性 171

§5.1 早期联编与滞后联编 171

§5.2 C++是一种混合语言 172

§5.3 虚函数 172

§5.4 函数重载 173

§5.5 改进类的用户界面 174

§5.6 抽象类 175

§5.7 虚函数的局限 178

§5.8 虚友元 178

§5.9 虚运算符 179

§5.10 一个多态性的例程 182

§5.11 作用域解析使多态性失效 185

§5.12 虚函数与非虚函数 186

§5.13 Vptr与Vtab结构的内存局布 187

§5.14 虚函数没有必要被重载 187

§5.15 是否说明为虚函数 189

§5.16 虚函数也能作为私有成员 190

§5.17 提高部分 191

§5.17.2 具有单一继承的多态性 192

§5.17.1 多态性机制 192

§5.17.3 具有多重继承的多态性 196

§5.17.4 嵌入的虚函数 199

§5.17.5 在基类中调用多态性函数 202

§5.17.6 虚函数与分类层次 204

§5.17.7 在一个构造函数中调用虚函数 206

第六章 异常处理 209

§6.1 处理异常情况的老方法 209

§6.2 处理异常情况的OOP方法 209

§6.3 抛出异常情况 210

§6.4 抛出初始化的对象 210

§6.5 捕获异常情况 212

§6.7 使用多重捕获区块 214

§6.6 捕获未定类型的异常情况 214

§6.8 使用catch/throw而非setjmp/Iongjmp 215

§6.9 查找恰当的异常情况处理程序 216

§6.10 绕开堆找 216

§6.11 作为类对象的异常情况 217

§6.12 用引用处理异常情况 218

§6.13 异常情况类型的层次 219

§6.14 处理带有异常情况的常见错误 220

§6.15 异常情况和资源占用 220

§6.16 使用函数闭包 221

§6.17 异常情况和构造函数 223

§6.18 带有子对象的对象中的异常情况 225

§6.19 标准C++异常情况 226

§6.20 OWL中的错误处理 228

§6.21 TXOWL异常情况 230

§6.22 TXCompatibility异常情况 230

§6.23 TXGdi异常情况 230

§6.24 TXInvalidMainWindow异常情况 231

§6.25 TXInvalidModule异常情况 231

§6.26 TXMenu异常情况 232

§6.27 TXout Of Memory异常情况 232

§6.28 TXPrinter异常情况 233

§6.29 TXValidator异常情况 234

§6.30 TXWindow异常情况 234

§6.30.1 窗口编辑中的警告 236

§6.30.2 异常情况处理和回叫函数 236

§6.32 异常情况接口说明 237

§6.31 多执行路线代码中的异常情况处理 237

§6.33 unexpected()函数 239

§6.34 Terminate()函数 241

§6.35 调试对Terminate()的调用 242

第七章 流 244

§7.1 老式ANSI C的缺陷 244

§7.2 C++流 245

§7.3 作为一般筛选器的流 245

§7.4 标准流I/O与内部数据类型 246

§7.4.1 I/O与char与chay*类型 248

§7.4.2 I/O与整型和长整型 249

§7.4.3 I/O与浮点型和双精度型 250

§7.4.4 I/O和用户类 251

§7.5 操作程序(/操作符) 253

§7.5.1 使用基于数字的操作程序 254

§7.5.2 设置和清除格式标志 255

§7.5.3 改变字段宽度的填充 256

§7.5.4 使用格式化操作程序 256

§7.5.5 用户自定义操作程序 258

§7.5.6 带参数的操作程序 261

§7.5.7 操作程序与用户流类 263

§7.6 文件I/O和流 266

§7.6.1 使用文本文件作输入 266

§7.6.2 流的错误检查 268

§7.6.3 使用文本文件作输出 269

§7.6.4 使用二进制文件作输入 271

§7.6.5 使用二进制文件作输出 273

§7.6.6 文件拷贝 276

§7.7 内存格式 278

§7.8 将打印机作为一个流 280

§7.9 高级部分 281

§7.10 Strembuf的层次结构 282

§7.11 Ios层次结构 283

§7.11.1 类filebuf 283

§7.11.2 类fstream 288

§7.11.3 类fstreambase 290

§7.11.4 类ifstream 294

§7.11.5 类ios 296

§7.11.6 类iostream 307

§7.11.7 类iostream—withassign 310

§7.11.8 类istream 311

§7.11.9 类istream—withassign 317

§7.11.10 类istrstream 318

§7.11.11 类ofstream 320

§7.11.12 类ostream 323

§7.11.13 类ostream—withassign 327

§7.11.14 类ostrstream 328

§7.11.15 类streambuf 332

§7.11.16 从streambuf中派生出一个类 339

§7.11.17 类strstream 343

§7.11.18 使用类strstream 344

§7.11.19 类strstreambase 345

§7.11.20 类strstreambuf 347

第八章 基于对象的集成库 353

§8.1 类目录 353

§8.2 Abstract Array类(抽象数组类) 355

§8.3 Array(数组类) 359

§8.4 使用Array类(数组类) 360

§8.5 重用存储槽 361

§8.6 结合类 362

§8.7 定义使用结合的对象 364

§8.8 使用结合类 365

§8.9 从结合中派生类 367

§8.10 无序的单位组类(Bag类) 368

§8.11 基本期类 372

§8.12 Base Time类(基本时间表) 374

§8.13 B—树类 376

§8.13.1 树的入门 377

§8.13.2 二叉树 377

§8.13.3 性能 378

§8.13.4 B—树 378

§8.14 聚集类 391

§8.15 集成器类 392

§8.16 Deguc类 397

§8.17 字典类(Dictonary类) 399

§8.17.1 一个字典例子 400

§8.17.2 使用字典集成外部重复 402

§8.18 双向表类 403

§8.19 Error类(错误类) 407

§8.20 散列函数类(HashTable类) 410

§8.21 表类(List类) 417

§8.22 对象类(Obiect类) 420

§8.23 优先队列类(priorityQueue类) 424

§8.23.1 使用Priorityqueue类 426

§8.23.2 将一个Priorityqueue转换成一个GIFO队列 429

§8.24 队列类(Qucue类) 430

§8.24.1 Set类(集合类) 433

§8.24.2 一个处理串(strings)的集合(set)类 434

§8.25 一个更数学化的Set类 435

§8.26 Sortable类 438

§8.27 已分类数组类(SortedArray类) 439

§8.28 栈类(stack类) 441

§8.29 String类(串类) 443

§8.30 使用String类 445

§8.30.1 从String派生一个类 447

§8.30.2 时间类(Time类) 450

§8.31 使用Time 450

§8.32 从Time派生类 452

§8.33 重复器 455

第九章 基于模板的容器库 457

§9.1 FDS容器和ADT容器 457

§9.2 FDS容器 457

§9.4 FDS容器 458

§9.5 FDS容器向量窗口器 458

§9.3 FDS存储范例 458

§9.5.1 简单直接向量 459

§9.5.2 计数直接向量 460

§9.5.3 有序直接向量 461

§9.5.4 简单间接向量 465

§9.5.5 有序间接向量 466

§9.6 FDS表容器 468

§9.6.1 简单直接表 468

§9.6.2 有序直接表 470

§9.6.3 间接表 473

§9.6.4 有序间接表 474

§9.7 ADT容器 475

§9.9 ADT数组 476

§9.8 用容器管理内存 476

§9.10 ADT有序数组 480

§9.11 ADT堆栈 482

§9.12 ADT直接堆栈 482

§9.13 ADT间接堆栈 485

§9.14 ADT队列和解散队列 486

§9.15 ADT元素单元组和集合 489

§9.16 多相ADT容器 492

第十章 OWL类 494

§10.1 OWL调试板的使用 494

§10.2 OWL应用程序的入口 494

§10.3 定制主窗口 496

§10.4 OWL对话框 498

§10.4.1 对话框类型的选择 499

§10.4.2 灰色三维对话框 499

§10.4.3 Borland风格的对话框 500

§10.4.4 对话框中的位图 501

§10.4.5 位图子控制的OWL数字化方案 502

§10.4.6 对话框数据的读或写 503

§10.5 OWL子控制 508

§10.6 数据的有效性 508

§10.7 Validator选项 509

§10.7.1 TFilterValidator的使用 510

§10.7.2 TRangeValidator的使用 510

§10.7.3 TPxPictureValidator的使用 511

§10.8 TStringlookupValidator的使用 512

§10.9 定制的控制器 513

§10.10 BWCC定制控制器的使用 513

§10.11 Glyphs 513

§10.12 自定义的控制器 515

§10.13 自定义的无线按钮 521

第十一章 多文档界面的应用 529

§11.1 窗口层次 529

§11.2 定制MDI客户区 530

§11.3 框架和客户绘画消息 530

§11.4 改变预定义窗口类许多的属性 531

§11.5 绘画实背景色 533

§11.6 绘制抖动背景颜色 535

§11.7 拖动并放下 537

§11.8 键盘控制 538

§11.9 主消息循环 539

§11.10 TAPPlication∷ProcessAPPMessage()函数 541

§11.11 允许键盘控制操作的窗口 541

§11.12 具有子窗口控制的MDI子窗口 543

§11.13 改变MDI窗口的背景 543

§11.14 处理MDI子窗口下的子窗口控制 546

§11.15 子窗口控制的两种结构 547

§11.16 两种构造函数之间的差异 547

§11.17 一个完整例子 547

§11.18 将对话框用作MDI子窗口 553

§11.19 MDI应用程序的菜单 557

§11.20 替换主菜单 558

§11.22 OLE 2.0的菜单合并 562

§11.21 合并菜单 562

§11.23 OWL合并菜单的方式 563

§11.24 改变菜单项的状态 567

§11.25 命令的启用 567

§11.26 为菜单命令增加检验标记 569

第十二章 列表框的变异 571

§12.1 Tab stops 571

§12.2 设置Tab stops 571

§12.3 一个短小的例子 572

§12.4 制表停止溢出 575

§12.5 用多个列表框模拟制表停止 575

§12.5.1 移动列表框选择条 576

§12.5.2 一个完整的例子 578

§12.5.3 用户可定制的显示格式 585

§12.5.4 改变列宽度 586

§12.5.5 重新安排列 586

§12.5.6 删除不必要的列 586

§12.5.7 跟踪字符串范围 588

§12.5.8 增加列表框字符串 588

§12.5.9 删除列表框字符串 589

§12.5.10 清除列表框 589

§12.5.11 一个完整的例子 590

§12.6 多列列表框 597

§12.6.1 列益出 598

§12.6.2 一个短小的例子 598

§12.7.1 LBS—HASStRINGS风格 601

§12.7 自己绘制列表框 601

§12.7.2 显示肖像 602

§12.7.3 WM—MEASUREITEM消息 602

§12.7.4 WM—DRAWITEM消息 603

§12.7.5 一个例子 605

§12.7.6 一起使用肖像和字符串 610

§12.7.7 绘制肖像和文字 611

§12.7.8 WM—COMPAREITEM消息 613

§12.7.9 一个完整的例子 613

§12.8 没有制表溢出的列数据 617

§12.8.1 截短长字符串 617

§12.8.2 绘制文字 618

§12.8.3 一个完整的例子 619

§12.8.4 排序列表框的列 624