《Borland C++4编程指南 第3版》PDF下载

  • 购买积分:19 如何计算积分?
  • 作  者:(美)Ted Faison著;沈金发等译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:1995
  • ISBN:730201776X
  • 页数:666 页
图书介绍:

目录 3

第一部分 C++ 3

第1章 基础知识 3

1.1 Borland C++项目文件的结构 3

1.1.1 头文件 3

1.1.2 一个完整的样本程序 5

1.2 变量 9

1.2.1 作用域 9

1.2.2 类型 11

1.2.3 存储类 11

1.2.4 const限定符 12

1.3 语句 14

1.2.5 Volatile限定符 14

1.3.1 表达式语句 15

1.3.2 if语句 16

1.3.3 switch语句 17

1.3.4 标号语句 19

1.3.5 while语句 19

1.3.6 do while语句 20

1.3.7 for语句 20

1.3.8 break语句 21

1.3.9 continue语句 22

1.3.10 GOTO语句 23

1.3.11 return语句 23

1.4.1 参数传递 24

1.4 函数 24

1.4.2 const参数传递 25

1.4.3 使用缺省参数 25

1.4.4 函数返回值 26

1.4.5 返回const项 27

1.4.6 返回值方面的问题 27

1.4.7 使用函数修饰符 28

1.5 指针与引用 30

1.6 指针、引用与const连用 32

1.7 提高部分 33

1.7.1 使用嵌入式汇编语言 33

1.7.3 C和C++合用 35

1.7.2 名字分裂 35

1.7.4 传值方式返回结构 36

1.7.5 使用枚举类型 38

1.7.6 使用内存管理 40

1.7.7 理解C参数传递顺序 42

1.7.8 理解pascal参数传递顺序 43

1.7.9 使用Interrupt处理函数 43

1.7.10 使用参数数目可变的函数 44

第2章 对象和类 47

2.1 定义类 47

2.1.1 类标识符 48

2.1.2 类体 48

2.2 使用类 49

2.2.2 类存取控制 50

2.2.1 封装 50

2.2.3 类私有成员 51

2.2.4 类公有成员 52

2.2.5 类保护成员 53

2.2.6 类对象的存储类 54

2.2.7 类作用域 55

2.2.8 空类 55

2.2.9 类嵌套 55

2.2.10 类的实例化 58

2.2.11 不完全的类声明 58

2.3 使用数据成员 58

2.3.1 静态数据成员 59

2.3.2 private static数据成员 61

2.3.3 类对象用作数据成员 62

2.3.4 数据成员的引用 64

2.3.5 指针数据成员 65

2.3.6 指向类数据成员的指针 65

2.3.7 指向对象数据成员的指针 67

2.4 使用成员函数 67

2.4.1 简单成员函数 68

2.4.2 静态成员函数 69

2.4.3 Const成员函数 70

2.4.4 volatile成员函数 70

2.4.5 内联成员函数 71

2.4.6 带有const this的成员函数 72

2.4.7 带有volatile this的成员函数 73

2.4.9 构造函数 75

2.4.8 特殊类函数 75

2.4.10 析构函数 82

2.4.11 friend(友元)关键字 84

2.4.12 友元的性质 85

2.5 提高部分 86

2.5.1 成员函数指针 86

2.5.2 数组和类 89

2.5.3 成员函数调用的分析 94

2.5.4 类模板 96

2.5.5 函数模板 103

第3章 继承性 106

3.1 可复用性 106

3.2 继承性 106

3.3 继承的作用 107

3.4 C++继承性的局限性 108

3.5 关于继承的不同观察角度 108

3.6 单一继承 109

3.6.1 何时继承 109

3.6.2 不能被继承的成分 109

3.6.3 存取基类的限定符 110

3.6.4 可被继承的类 110

3.6.5 传递给基类的参数 112

3.6.6 构造函数的调用顺序 113

3.6.7 析构函数的调用顺序 114

3.6.8 种子类 114

3.6.9 派生类的类型转换 116

3.6.10 作用域的分辨 117

3.6.11 性质扩展 120

3.6.12 性质约束 122

3.6.13 使用单一继承的例子 124

3.6.14 函数闭包 126

3.7 多重继承 131

3.7.1 声明多基类继承的类 133

3.7.2 调用基类构造函数 133

3.7.3 使用虚基类 134

3.7.4 混合使用虚基类和非虚基类 135

3.7.5 调用析构函数 136

3.7.6 使用类型转换 136

3.7.7 保持基类函数的正确性 137

3.7.8 多继承中作用域分辨的应用 139

3.7.9 跟踪内存 140

3.8 提高部分 141

3.8.1 运行时刻的考虑 141

3.8.2 进入对象内部 142

3.8.3 被继承的Debugger类 144

第4章 重载 149

4.1 重载的原因 149

4.2 函数重载 150

4.2.1 非成员重载函数 150

4.2.2 重载成员函数 152

4.2.3 类等级中的重载函数 152

4.2.5 作用域分辨 154

4.2.4 重载不是覆盖 154

4.2.6 参数匹配 155

4.2.7 重载构造函数 155

4.2.8 一些特殊情况 157

4.2.9 通过重载定义用户转换规则 158

4.2.10 重载静态成员函数 161

4.3 操作符重载 162

4.3.1 操作符用作函数调用 163

4.3.2 重载操作符用作成员函数 164

4.3.3 操作符成员函数的几个注意点 166

4.3.4 重载操作符用作友元函数 166

4.3.5 赋值操作符 168

4.3.6 函数调用操作符() 170

4.3.7 下标操作符 172

4.3.8 操作符重载限制 173

4.3.9 操作符的作用域分辨 174

4.4 提高部分 175

4.4.1 名字分裂的规则 175

4.4.2 重载new和delete 177

4.4.3 前缀和后缀操作符 180

第5章 多态性 182

5.1 先期和迟后联编 182

5.2  C++是一种混合语言 183

5.3 虚函数 183

5.3.1 函数覆盖 184

5.3.3 抽象类 186

5.3.2 改善了的类用户界面 186

5.3.4 虚函数的局限性 189

5.3.5 虚友元 189

5.3.6 虚操作符 190

5.4 多态性的例子 193

5.5 作用域分辨使多态性失效 196

5.6 虚函数与非虚函数连用 197

5.7  vptr和vtab结构的内存布局 198

5.8 虚函数可以不被覆盖 198

5.9 确定是否使用虚函数 200

5.10 私有虚函数 201

5.11.1 多态性机制 202

5.11 提高部分 202

5.11.2 单一继承中的多态性 203

5.11.3 多重继承中的多态性 207

5.11.4 内联虚函数 210

5.11.5 基类中调用多态函数 213

5.11.6 虚函数和分类等级 215

5.11.7 构造函数中调用虚函数 217

第6章 例外处理 219

6.1 处理例外的旧方法 220

6.2 处理例外的OOP方法 221

6.3 扔掉例外 221

6.4 扔掉初始化过的对象 222

6.5 捕获例外 224

6.6 捕获无类型的例外 225

6.7 使用多个catch块 226

6.8 使用catch/throw取代setjmp/longjmp 227

6.9 寻找合适的例外处理程序 227

6.10 清除栈 227

6.11 把例外当作类对象 229

6.12 通过引用处理例外 229

6.13 例外类型的层次 230

6.14 用例外处理常见错误 232

6.15 例外和资源获取 232

6.16 使用函数闭包 233

6.17 例外和构造函数 235

6.18 含子对象的对象中的例外 236

6.19 标准C+十例外 237

6.20 OWL中的错误处理 240

6.21 TXOwl例外 241

6.22 TXCompatibility例外 241

6.23 TXGdi例外 242

6.24 TXInvalidMainWindow例外 242

6.25 TXInvalidModule例外 243

6.26 TXMenu例外 243

6.27 TXOutOfMemory例外 243

6.28 TXPrinter例外 245

6.29 TXValidator例外 245

6.30 TXWindow例外 246

6.30.1 在Windows编程中的一些声明 247

6.30.2 例外处理和回调函数 247

6.32 例外接口规范 248

6.31 多线程程序中的例外处理 248

6.33 函数unexpected() 251

6.34 terminate()函数 252

6.35 跟踪对terminate()的调用 253

第7章 流 255

7.1 stdio方法的缺点 255

7.2 C++流 256

7.3 广义的流 257

7.4 内部数据类型的标准I/O流 258

7.4.1 char和char*类型的I/O操作 259

7.4.2 int和long类型的I/O操作 260

7.4.3 float和double类型的I/O操作 261

7.4.4 用户类的I/O操作 262

7.5 操作函数 264

7.5.1 使用数制(基)操作函数 266

7.5.2 设置和清除格式标志 267

7.5.3 改变域宽及填充 267

7.5.4 使用格式操作函数 268

7.5.5 用户定义的操作函数 270

7.6 文件I/O的流实观 279

7.6.1 文本文件输入 279

7.6.2 流的错误检测 280

7.6.3 文本文件输出 282

7.6.4 二进制文件输入 284

7.6.5 二进制文件输出 286

7.6.6 拷贝文件 289

7.7 内存格式化 291

7.8 将打印机看作流 293

7.9 提高部分 294

7.10 streambuf等级 295

7.11 ios等级 296

7.11.1 类filebuf 296

7.11.2 类fstream 301

7.11.3 类fstreambase 304

7.11.4 类ifstream 307

7.11.5 类ios 310

7.11.6 类iostream 322

7.11.8 类istream 325

7.11.7 类iostream_withassign 325

7.11.9 类istream_withassign 332

7.11.10 类istrstream 333

7.11.11 类ofstream 335

7.11.12 类ostream 338

7.11.13 类ostream_withassign 342

7.11.14 类ostrstream 344

7.11.15 类streambuf 349

7.11.16 从类streambuf中派生类 356

7.11.17 类strstream 359

7.11.18 使用类strstream 360

7.11.19 类strstreambase 362

7.11.20 类strstreambuf 364

8.1 类的分类 371

第8章 基于对象的包容类库 371

8.2 AbstractArray(抽象数组)类 373

8.3 Array类 378

8.4 Array类的使用 379

8.5 数组中某一存储位置的再次使用 380

8.6 Association(关联)类 381

8.7 关联所用到的对象的定义 383

8.8 Association类的使用 384

8.9 由Association派生出类 386

8.10 Bag(包)类 388

8.11 BaseDate(基日期)类 391

8.12 BaseTime(时基)类 394

8.13.1 树的基本概念 397

8.13 Btree(B树)类 397

8.13.2 二叉树 398

8.13.3 二叉树的性能评价 399

8.13.4 B树 399

8.14 Collection(集)类 412

8.15 Container(包容)类 414

8.16 Deque(双端队列)类 419

8.17 Dictionary(字典)类 422

8.17.1 一个Dictionary的例子 423

8.17.2 用外部循环量遍历Dictionary包容 426

8.18 DoubleList(双向链表)类 426

8.19 Error类 431

8.20 HashTable(哈希表)类 434

8.21 List(链表)类 442

8.22 Object类 446

8.23 PriorityQueue(优先队列)类 450

8.23.1 PriorityQueue类的使用 452

8.23.2 把优先队列转换成GIFO队列 455

8.24 Queue(队列)类 456

8.24.1 Set(集合)类 459

8.24.2 处理字符串的Set类 460

8.25 一个更接近数学意义上的集合的Set类 462

8.26 Sortable(排序)类 464

8.27 SortedArray(排序数组)类 466

8.28 Stack(栈)类 468

8.29 String(字符串)类 471

8.30 String类的使用 474

8.30.1 从String类派生出新的类 476

8.30.2 Time(时间)类 478

8.31 Time类的使用 479

8.32 由Time类派生出新类 481

8.33 循环量 484

第9章 基于模板的包容类库 487

9.1 FDS和ADT包容 487

9.2 FDS包容 487

9.3 FDS存储范例 488

9.4 FDS包容的使用 488

9.5 FDS向量包容 488

9.5.1 简单直接向量 489

9.5.2 直接计数向量 491

9.5.3 直接排序向量 492

9.5.4 间接简单向量 495

9.5.5 间接排序向量 497

9.6 FDS表包容 499

9.6.1 直接简单表 499

9.6.2 直接排序表 501

9.6.3 间接表 505

9.6.4 间接排序表 505

9.7 ADT包容 506

9.8 用包容类进行内存管理 507

9.9 ADT数组 508

9.10 ADT排序数组 512

9.12 ADT直接栈 514

9.11 ADT栈 514

9.13 ADT间接栈 517

9.14 ADT队列和双端队列 518

9.15 ADT包和集合 522

9.16 异质ADT包容 526

第二部分 OWL 530

第10章 ObjectWindows(对象窗口)库类 530

10.1 使用OWL的调试版本 530

10.2 OWL应用程序的入口点 530

10.3 定制主窗口 532

10.4 OWL对话框 535

10.4.1 选择对话框风格 535

10.4.2 灰色3D对话框 536

10.4.3 Borland风格对话框 537

10.4.4 对话框中的位图 537

10.4.5 位图式子控制的OWL计数表 539

10.4.6 读写对话框数据 539

10.5 OWL子控制 544

10.6 数据合法性 545

10.7 合法检验函数选项 545

10.7.1 使用TFilterValidator 546

10.7.2 使用TRangeValidator 547

10.7.3 使用TPXPictureValidator 547

10.7.4 使用TStringLookupValidator 548

10.8.1 使用BWCC定制控制 549

10.8 定制控制 549

10.8.2 雕象 550

10.8.3 自画式控制 551

10.8.4 自画式圆按钮 557

第11章 MDI应用程序 564

11.1 窗口层次 566

11.2 定制MDI用户区域 567

11.3 框架和用户区域刷新消息 567

11.4 预定义Windows类属性的修改 568

11.5 刷新纯背景颜色 570

11.6 刷新闪烁的背景颜色 572

11.7 拖动并安置 574

11.8 键盘处理 576

11.9 主消息循环 577

11.10 函数TApplication∷ProcessAppMessage() 578

11.11 允许键盘处理的窗口 579

11.12 带子控制的MDI子窗口 580

11.13 改变MDI子窗口的背景 580

11.14 MDI子窗口中子控制的处理 584

11.15 子控制的两个构造函数 584

11.16 两个构造函数间的区别 584

11.17 一个完整的例子 585

11.18 用对话框作MDI子窗口 590

11.19 MDI应用程序中的菜单 595

11.20 替换主菜单 595

11.22 OLE 2.0菜单合并 599

11.21 合并菜单 599

11.23 OWL如何合并菜单 600

11.24 改变菜单项的状态 604

11.25 命令使能 605

11.26 增添菜单命令的检取标记 606

第12章 列表框的变化 608

12.1 制表点 608

12.2 设置制表点 609

12.3 范例12.1 609

12.4 制表点越界 612

12.5 用多列表框模拟制表点 613

12.5.1 移动列表框选择条 614

12.5.2 范例12.2 615

12.5.4 改变列宽 623

12.5.3 用户可定制的显示格式 623

12.5.6 删除多余的列 624

12.5.5 重排 624

12.5.7 记录字符串长度 627

12.5.8 向列表框增加字符串 627

12.5.9 删除列表框中字符串 627

12.5.10 清空列表框 628

12.5.11 范例12.3 629

12.6 多列列表框 636

12.6.1 列出界 637

12.6.2 范例12.4 638

12.7.1 LBS_HASSTRINGS风格 641

12.7.2 显示图符 641

12.7 自画式列表框 641

12.7.3 WM_MEASUREITEM 消息 642

12.7.4 WM_DRAWITEM消息 643

12.7.5 范例12.5 645

12.7.6 联合使用图符和字符串 650

12.7.7 绘制图符和文本 651

12.7.8 WM-COMPAREITEM消息 653

12.7.9 范例12.6 653

12.8 无制表出界的列式数据 657

12.8.1 长字符串被截断 658

12.8.2 绘制文本 659

12.8.3 范例12.7 660

12.8.4 保存列表框中的列表 664