当前位置:首页 > 工业技术
Borland C++3.1编程指南
Borland C++3.1编程指南

Borland C++3.1编程指南PDF电子书下载

工业技术

  • 电子书积分:21 积分如何计算积分?
  • 作 者:(美)费森(Faison,Ted)著;蒋维杜等译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:1993
  • ISBN:7302014426
  • 页数:783 页
图书介绍:
《Borland C++3.1编程指南》目录
标签:编程 指南

引言 1

0.1 为什么使用OOP方法? 1

目录 1

0.2 本书结构 2

0.3 本书的描述 2

0.4 软硬件需求 3

第一部分 用Borland C++进行面向对象的程序设计 3

第1章 基础知识 3

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

1.1.1 头文件 3

1.1.2 一个完整的样本程序 4

1.2.1 作用域 8

1.2 变量 8

1.2.2 类型 10

1.2.3 存储类 10

1.2.4 const限定符 10

1.2.5 Volatile限定符 12

1.2.6 语句 13

1.2.7 函数 21

1.2.8 指针和引用 26

1.2.9 指针、引用与const连用 28

1.2.10 提高部分 29

第2章 对象和类 41

2.1 定义类 41

2.1.2 类体 42

2.1.1 类标识符 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 类对象的存储类 47

2.2.7 类作用域 47

2.2.8 空类 48

2.2.9 类嵌套 48

2.2.11 不完全的类声明 50

2.2.10 类的实例化 50

2.3 使用数据成员 51

2.3.1 静态数据成员 51

2.3.2 private static数据成员 53

2.3.3 类对象用作数据成员 54

2.3.4 指针数据成员 56

2.3.5 指向类数据成员的指针 56

2.3.6 指向对象数据成员的指针 57

2.4 使用成员函数 58

2.4.1 简单成员函数 59

2.4.2 静态成员函数 59

2.4.3 Const成员函数 60

2.4.4 volatile成员函数 61

2.4.5 内联成员函数 61

2.4.6 带有const this的成员函数 62

2.4.7 带有volatile this的成员函数 63

2.4.8 特殊类函数 64

2.4.9 构造函数 65

2.4.10 析构函数 70

2.4.11 友元关键字 72

2.4.12 友元的性质 73

2.5 提高部分 74

2.5.1 成员函数指针 74

2.5.2 数组和类 76

2.5.3 成员函数调用的分析 81

2.5.4 类模板 82

2.5.5 函数模板 89

3.2 继承性 92

第3章 继承性 92

3.1 可复用性 92

3.3 继承的作用 93

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

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

3.6 单一继承 94

3.6.1 何时继承 94

3.6.2 不能被继承的成分 95

3.6.3 基类的存取限定符 95

3.6.4 可被继承的类 96

3.6.5 传递给基类的参数 97

3.6.6 构造函数的调用顺序 98

3.6.8 种子类 99

3.6.7 析构函数的调用顺序 99

3.6.9 派生类的类型转换 101

3.6.10 作用域的分辨 102

3.6.11 性质扩展 105

3.6.12 性质约束 107

3.6.13 使用单一继承的例子 108

3.6.14 函数闭包 110

3.7 多重继承 114

3.7.1 声明多基类继承的类 115

3.7.2 调用基类构造函数 116

3.7.3 使用虚基类 116

3.7.5 调用析构函数 118

3.7.6 使用类型转换 118

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

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

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

3.7.9 跟踪内存 122

3.8 提高部分 123

3.8.1 运行时刻的考虑 123

3.8.2 进入对象内部 123

3.8.3 被继承的Debugger类 126

第4章 重载 130

4.1 重载的原因 130

4.2 函数重载 131

4.2.1 非成员重载函数 131

4.2.2 重载成员函数 132

4.2.3 类等级中的重载函数 133

4.2.4 重载不是覆盖 134

4.2.5 作用域分辨 134

4.2.6 参数匹配 135

4.2.7 重载构造函数 136

4.2.8 一些特殊情况 137

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

4.2.10 重载静态成员函数 141

4.3 操作符重载 141

4.3.1 操作符用作函数调用 143

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

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

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

4.3.5 赋值操作符 147

4.3.6 函数调用操作符() 149

4.3.7 下标操作符 151

4.3.8 操作符重载限制 152

4.3.9 操作符的作用域分辨 152

4.4 提高部分 153

4.4.1 名字分裂的规则 153

4.4.2 重载new和delete 156

4.4.3 前缀和后缀操作符 158

第5章 多态性 161

5.1 先期和迟后联编 161

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

5.3 虚函数 162

5.3.1 函数覆盖 163

5.3.2 空的虚函数 164

5.3.3 改善了的类用户接口 165

5.3.4 抽象类 166

5.3.5 虚函数的局限性 169

5.3.6 虚友元 169

5.3.7 虚操作符 170

5.3.8 虚构造函数 172

5.3.9 虚析构函数 172

5.4 多态性的例子 172

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

5.6 虚函数和非虚函数连用 176

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

5.8 虚函数可以不被覆盖 178

5.9 确定是否使用虚函数 179

5.10 私有虚函数 180

5.11 提高部分 182

5.11.1 多态性机制 182

5.11.2 单一继承中的多态性 182

5.11.3 多重继承中的多态性 186

5.11.4 嵌入式虚函数 189

5.11.5 基类中调用多态函数 192

5.11.6 虚函数和分类等级 194

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

第6章 流 198

6.1 Stdio方法的缺点 198

6.3 广义的流 199

6.2 C++流 199

6.4 内部类型的标准I/O流 200

6.4.1 char和char*类型的I/O操作 202

6.4.2 int和long类型的I/O操作 203

6.4.3 float和double类型的I/O操作 204

6.4.4 用户类的I/O操作 204

6.5 操作函数 206

6.5.1 使用数制(基)操作函数 208

6.5.2 设置和清除格式标志 209

6.5.3 改变域宽及填充 209

6.5.4 使用格式操作函数 210

6.6 文件I/O的流实现 211

6.6.1 文本文件输入 212

6.6.2 流的错误检测 213

6.6.3 文本文件输出 214

6.6.4 二进制文件输入 216

6.6.5 二进制文件输出 217

6.7 内存格式化 218

6.8 将打印机看作流 220

6.9 提高部分 221

6.10 内部流类型 221

6.11 streambuf等级 221

6.11.1 类streambuf 222

6.11.2 从类streambuf中派生类 229

6.11.3 类strstreambuf 232

6.11.4 类filebuf 237

6.12 ios等级 242

6.12.1 类ios 243

6.12.2 类istream 254

6.12.3 类ostream 260

6.12.4 类iostream 263

6.12.5 类istream_withassign 266

6.12.6 类ostream_withassign 268

6.12.7 类iostream_withassign 269

6.12.8 类fstreambase 270

6.12.9 类strstreambase 273

6.12.10 类ifstream 275

6.12.11 类ofstream 277

6.12.12 类fstream 280

6.12.13 类istrstream 282

6.12.14 类ostrstream 285

6.12.15 类strstream 289

6.12.16 流中二进制文件操作和文本文件操作 291

6.12.17 用户定义的操作函数 296

6.13 流代码的大小 303

第7章 包容类库 304

7.1 类的等级结构的优点 304

7.2 类层次结构的目标 306

7.3 包容类 306

7.3.1 类的分类 306

7.3.2 程序运行时对类的识别 308

7.4 基于Object类的包容类 308

7.5 类AbstractArray 309

7.6 Array类 313

7.6.1 Array类的使用 314

7.6.2 数组中某一存储位置的再次使用 315

7.7 Association(关联)类 316

7.7.1 关联所用到的对象的定义 318

7.7.2 Association类的使用 319

7.7.3 从Association派生类 321

7.8 类Bag 322

7.9 类BaseDate 326

7.10 类BaseTime 329

7.11 类Btree 331

7.11.1 树的基本概念 331

7.11.2 二叉树 332

7.11.3 B 树 333

7.12 类Collection 345

7.13 类Container 347

7.14 类Date 352

7.15 类Deque 358

7.16 类Dictionary 360

7.16.1 一个Dictionary的例子 361

7.16.2 用外部循环量遍历Dictionary包容 363

7.17 类DoubleList 364

7.18 类Error 369

7.19 类HashTable 371

7.20 类List 378

7.21 类Object 382

7.22 类PriorityQueue 385

7.22.1 类PriorityQueue的使用 387

7.22.2 把优先队列转换成GIFO队列 390

7.23 类Queue 390

7.24 类Set 394

7.24.1 处理字符串的类Set 394

7.24.2 一个更接近数学意义上的集合的类Set 396

7.25 类Sortable 398

7.26 类SortedArray 400

7.27 类Stack 402

7.28 类String 404

7.28.1 类String的使用 407

7.28.2 从类String派生出新的类 408

7.29 类Time 410

7.29.1 类Time的使用 411

7.29.2 由类Time派生出新类 413

7.30 类Timer 416

7.31 类TShouldDelete 419

7.32 循环量 420

7.33 构造类库 422

7.34 基于模板的包容类 422

7.35 FDS和ADT包容 423

7.36 FDS包容 423

7.36.1 FDS存储范例 423

7.36.2 FDS包容 424

7.36.3 FDS向量包容 424

7.36.5 直接计数向量 426

7.36.4 简单直接向量 426

7.36.6 直接排序向量 427

7.36.7 间接简单向量 429

7.36.8 间接计数向量 430

7.36.9 间接排序向量 431

7.37 FDS表包容 433

7.37.1 直接简单表 435

7.37.2 直接排序表 435

7.37.3 间接表 438

7.37.4 间接排序表 439

7.38 ADT包容 439

7.38.1 ADT数组 440

7.38.2 ADT排序数组 444

7.38.3 ADT栈 445

7.38.4 ADT队列和双端队列 449

7.38.5 ADT包和集合 452

7.38.6 异质ADT包容 456

第二部分 开发WindoWs和DOS应用程序 459

第8章 用于Windows程序设计的类 459

8.1 运行检测程序 459

8.2 最终为PC机提供标准GUI 460

8.3 围绕对象设计的Windows 460

8.4 C++对Windows资源的管理 461

8.5 设备描述表 461

8.6 绘图闭包 471

8.7 对话框 476

8.8 位图 485

8.9 裁剪板 488

8.10 真正的出发点 494

第9章 完整的窗口程序 495

9.1 文件对话框 495

9.1.1 文件打开用的对话框 501

9.1.2 文件存储对话框 504

9.2 使用打印机 510

9.2.1 使用DLL 510

9.2.2 Printer Driver DLL 512

9.2.3 Printer类 514

9.3 文本编辑器 520

9.3.1 主菜单 520

9.3.2 实现 521

9.3.3 About对话框 526

第10章 对象窗口类库 528

10.1 忘记ANSI C风格的Windows程序 528

10.2 Borland“所见即所得” 528

10.3 OWL应用程序的解析 529

10.3.1 定制主窗口 533

10.3.2 对话框处理 535

10.3.3 增加菜单 537

10.4 无模式对话框 538

10.4.1 带色斑的对话框 541

10.4.2 全部数字式 543

10.4.3 对话框数据的读写 544

10.4.4 子控制框的数据合法性检查 550

10.5 自画式控制 558

10.5.1 BWCC的自画式控制 558

10.5.2 更多的数字 558

10.5.3 非BWCC的自画式控制 561

10.5.4 自画式圆按钮 567

10.6 另外一个文件打开对话框 573

10.7 持续的OWL对象 582

第11章 OWL应用程序 589

11.1 OWL应用程序的概貌 589

11.2 状态行 589

11.2.1 子窗口方式 590

11.2.2 GDI方式 597

11.3 弹出式菜单 606

11.3.1 菜单的处理 607

11.3.2 一个完整的应用程序:WPOPUP 608

11.4 浮动式工具调色板 614

11.4.1 一般的画图工具 615

11.4.2 专用的画图工具 616

11.4.3 系统管理员 617

11.4.4 一个完整的应用程序:TOOL 619

11.5 扩展Borland资源命名规定 633

11.6 编辑窗口 634

11.6.1 用弹出式窗口编辑 634

11.6.2 装入键盘加速键 638

11.6.3 用文件编辑 638

11.6.4 利用现成的Borland资源 640

11.6.5 一个完整的应用程序:WFEDIT 641

11.7 MDI应用程序 642

11.7.1 OWL的类MDI 643

11.7.2 一个完整的应用程序:MDIDEMO 644

11.7.3 处理菜单命令的子MDI 647

11.7.4 子窗口菜单 648

第12章 Turbo Vision类 650

12.1 以字符方式工作的GUI 650

12.1.1 Turbo Vision 650

12.1.2 Turbo Vision的新标记和新概念 651

12.1.3 TCollection类库 652

12.1.4 访问TCollection 652

12.2.1 初始化用户应用程序 653

12.1.5 持久对象 653

12.2 一个Turbo Vision应用程序的分析 653

12.2.2 定制应用程序 656

12.2.3 理解彩色调色板 657

12.2.4 定制桌面 662

12.2.5 定制状态行 665

12.2.6 定制应用程序的颜色 669

12.2.7 定制菜单栏 673

12.2.8 定制窗口 678

12.3 对话框 683

12.3.1 对话控制中的一般问题 687

12.3.2 内部对话框的定制 688

12.3.3 视图到视图消息 692

12.3.4 广播消息 693

12.4 持久对象 700

12.4.1 避免流管理程序问题 701

12.4.2 注册持久类 701

12.4.3 辅助流管理程序 702

12.4.4 确定读写内容 702

12.4.5 初始化持久对话框 703

12.4.6 利用资源文件和持久对象 704

12.4.7 组装 705

12.4.8 使用没有流的持久对象 712

12.4.9 防守式的程序设计 713

第13章 Turbo Vision应用程序 714

13.1 Turbo Vision与Microsoft Windows 714

13.2.2 处理热键事件 715

13.2 弹出式窗口 715

13.2.1 链接一个弹出式窗口到热键上 715

13.2.3 编写一个完整的应用程序 716

13.3 文件浏览器 719

13.3.1 增加滚动条 719

13.3.2 开发窗口类层次体系 720

13.3.3 编写一个完整的应用程序 720

13.3.4 检验窗口合法性 726

13.3.5 检验文件大小 727

13.3.6 控制窗口属性 728

13.4 弹出式菜单 728

13.4.1 链接一个弹出式菜单到一热键上 728

13.4.2 处理热键事件 730

13.4.3 编写一个完整的应用程序 731

13.5 带提示的状态行 736

13.5.1 定义帮助描述表 736

13.5.2 由帮助描述表获得提示 736

13.5.3 对菜单使用提示 737

13.5.4 对用户类使用提示 738

13.5.5 编写一个完整的应用程序 738

13.6 视区相关的状态行 743

13.6.1 理解帮助描述表范围 745

13.6.2 编写一个完整的应用程序 745

13.7 上下文相关的帮助 749

13.7.1 编制一个帮助文本文件 749

13.7.2 编译帮助文件 750

13.7.3 从应用程序中激活帮助系统 751

13.7.4 编写一个完整的应用程序 752

13.8 查看特性 757

13.8.1 使用遗忘的右鼠标按钮 758

13.8.2 产生特征检阅命令 760

13.8.3 编写一个完整的应用程序 760

13.9 用于编辑的窗口 768

13.9.1 开发Turbo Vision裁剪板类 768

13.9.2 使用TEditWindow的内部命令 769

13.9.3 为TEditWindow的提示和出错处理提供支持 771

13.9.4 编写一个完整的应用程序 772

13.10 后记 781

参考文献 782

返回顶部