目录 1
第1章 面向对象程序设计概述 1
1.1 什么是面向对象程序设计 1
1.2 面向对象程序设计中的基本概念 3
1.2.1 类和对象 3
1.2.2 数据封装(信息隐蔽) 4
1.2.3 继承性 4
1.2.4 多态性 5
1.3 C++与C++Builder概述 6
1.3.1 C++语言 6
1.3.2 C++Builder开发工具 6
1.3.3 编程环境 7
第2章 C++中的一些新特性 9
2.1 输入/输出的新风格 9
2.2 const修饰符 10
2.3 new和delete 12
2.4 引用 13
2.5 函数原型及参数默认值 16
2.6 内联函数 17
2.7 灵活的表达方式 18
2.7.1 注释行 18
2.7.2 强制类型转换 18
2.7.3 局部变量说明 19
2.7.4 结构名的使用 19
2.7.5 作用域运算符 19
2.8 应用实例:链栈的过程化实现 20
2.8.1 问题描述 20
2.8.2 链栈相关的数据结构与函数 20
2.8.3 程序的处理过程 21
习题 22
第3章 类与对象 25
3.1 类的定义 25
3.2.1 类的接口部分 26
3.2 接口部分与实现部分 26
3.2.2 类的实现部分 27
3.2.3 内联函数 28
3.3 类的封装 29
3.4 对象的生成与访问 30
3.4.1 对象分配的三种区域 30
3.4.2 直接定义对象 31
3.4.3 定义对象指针以创建对象 32
3.5 this指针 33
3.6 类的作用域 34
3.7 应用实例:数字式时钟模拟程序 36
3.7.1 问题描述 36
3.7.2 类的定义及实现 36
3.7.3 处理过程及输出结果 37
3.7.4 操作步骤 38
习题 38
4.1.1 设置构造函数的必要性 40
第4章 构造函数与析构函数 40
4.1 构造函数的功能及特点 40
4.1.2 构造函数的特点 41
4.1.3 构造函数的执行 42
4.2 构造函数的参数及其默认值 42
4.2.1 参数设置 42
4.2.2 设置参数的默认值 44
4.3 重载构造函数 46
4.4 构造函数的初始化表 47
4.5 析构函数 50
4.6 拷贝构造函数 51
4.6.1 拷贝构造函数的形式及功能 51
4.6.2 浅拷贝与深拷贝 52
4.6.3 拷贝构造函数的执行 53
4.7.1 无名对象的使用 55
4.7 无名对象与类型转换 55
4.7.2 类型转换 56
4.8 应用实例:整数集合运算 58
4.8.1 问题描述 58
4.8.2 Tintset类的定义 58
4.8.3 Tintset类的实现 59
4.8.4 程序的处理过程 61
习题 61
第5章 静态成员与友元 64
5.1 静态成员 64
5.1.1 静态数据成员 64
5.1.2 静态函数成员 65
5.2 友元 66
5.2.1 友元的概念 66
5.2.2 友元函数 66
5.2.3 友元类 68
5.3 const修饰的对象及类成员 69
5.4 应用实例:链栈处理程序 70
5.4.1 问题说明 71
5.4.2 链栈类的定义及实现 71
5.4.3 程序的处理过程 72
习题 73
第6章 重载 75
6.1 函数的重载 75
6.2 运算符重载概述 76
6.3 类运算符重载的两种形式 77
6.3.1 友元运算符重载 77
6.3.2 成员运算符重载 79
6.4 几种特殊运算符的重载 81
6.4.1 下标运算符的重载 81
6.4.2 转换运算符的重载 82
6.4.3 赋值运算符的重载 84
6.5.2 复数类的实现 86
6.5 应用实例:复数运算 86
6.5.1 复数类的定义 86
6.5.3 复数运算演示程序 87
习题 88
第7章 类的继承 91
7.1 继承的概念与派生类定义 91
7.1.1 继承的概念 91
7.1.2 派生类的定义 92
7.2 派生类的访问控制 94
7.2.1 保护成员 94
7.2.2 访问控制 95
7.3 构造函数与析构函数的调用顺序 96
7.4 二义性及作用域操作符 98
7.4.1 由多个基类的同名成员产生的二义性 98
7.4.2 由多个父类的共同基类产生的二义性 99
7.4.3 支配规则的运用 101
7.5 虚拟继承 102
7.6 运行时的多态性及虚函数 103
7.7 纯虚函数与抽象类 106
7.8 应用实例 108
7.8.1 实例一:汽车与赛车信息管理 108
7.8.2 实例二:学生与教师评选程序 111
习题 113
第8章 模板 116
8.1 模板的概念 116
8.2 函数模板 117
8.3 类模板 119
8.4 应用实例:顺序栈处理程序 122
8.4.1 顺序栈类模板 122
8.4.2 程序的处理过程 123
习题 124
9.1 C++中的I/O系统 126
第9章 I/O流类 126
9.2 标准I/O流类 127
9.3 格式控制 129
9.3.1 使用流类的成员函数 129
9.3.2 使用格式控制符 132
9.4 重载插入/提取运算符 134
9.5 文件流类 136
9.5.1 文件流类概述 136
9.5.2 文件的打开与关闭 137
9.5.3 文件的读写 138
9.6 应用实例:文件信息读写程序 141
9.6.1 程序中的类定义及数据结构 141
9.6.2 程序的处理过程 142
习题 143
10.1.1 消息与事件驱动 147
10.1.2 可视化 147
10.1 面向对象开发工具中的基本概念 147
第10章 C++Builder集成开发环境 147
10.1.3 事件处理 148
10.1.4 组件 148
10.1.5 属性 149
10.1.6 方法 149
10.2 VCL类库 150
10.2.1 VCL类库概述 150
10.2.2 组件的分类 150
10.2.3 组件的设置与引用 151
10.3 C++Builder的集成开发环境 152
10.3.1 主菜单及快捷按钮栏 152
10.3.2 组件板 154
10.3.3 对象监视器 154
10.3.4 窗体与代码编辑器 155
10.3.5 对象树形浏览器 157
10.3.6 工程管理 158
10.3.7 开发界面的调整 160
10.4 创建一个简单的Windows应用程序 160
10.4.1 C++Builder对C++的扩展 160
10.4.2 创建应用程序的基本步骤 162
10.4.3 应用程序的基本组成 165
第11章 输入/输出处理 167
11.1 窗体设计 167
11.1.1 窗体类 167
11.1.2 窗体的主要属性 167
11.1.3 窗体的主要事件 169
11.1.4 窗体设计实例 169
11.2 基本输入/输出组件 170
11.2.1 标签 170
11.2.2 编辑框 171
11.2.3 数字增减器 172
11.2.4 字符串表格 173
11.3 选择输入组件 174
11.3.1 列表选择组件 174
11.3.2 组合框 175
11.3.3 复选框 176
11.3.4 无线按钮 176
11.3.5 分组框 177
11.3.6 无线按钮组 177
11.3.7 选择输入组件的应用实例 178
11.4 按钮与信息显示 179
11.4.1 基本按钮 179
11.4.2 图形按钮 180
11.4.3 信息显示对话框 181
11.5 应用实例:员工信息表维护程序 181
11.5.1 功能要求及组件设置 181
11.5.2 顺序表的类定义 182
11.5.3 顺序表Tsxb类的实现 182
11.5.4 程序功能的实现 184
习题 185
第12章 日期、时间及字符串处理 187
12.1 用户自定义字符串类 187
12.1.1 Tstring类的定义 187
12.1.2 Tstring类的实现 188
12.1.3 字符串类功能演示程序 191
12.2 系统提供的AnsiString类 194
12.2.1 AnsiString类提供的方法 194
12.2.2 字符串处理的相关函数 197
12.3 用户自定义Tdate类 199
12.3.1 Tdate类的定义 199
12.3.2 Tdate类的实现 199
12.3.3 日期类功能演示程序 201
12.4 系统提供的TDate Time类 202
12.4.1 TDate Time类的方法 202
12.4.2 日期和时间处理的相关函数 204
12.5 应用实例:将播出日程表作成程序 206
12.5.1 可视化组件CCalendar 206
12.5.2 Timer组件 206
12.5.3 将播出日程表作成程序 207
习题 209
第13章 图形图像处理 211
13.1 图形图像有关的类 211
13.1.1 TCanvas类的基本属性 211
13.1.2 使用Canvas的绘图方法 213
13.1.3 TGraphics类 216
13.1.4 TPicture类 216
13.1.5 TBitmap类 216
13.2 图形图像有关的组件 217
13.2.1 绘图板组件(PaintBox) 217
13.2.2 Shape组件 218
13.3 立用实例:时钟模拟程序 220
13.2.3 图像显示组件(Image) 220
13.3.1 功能要求及组件设置 221
13.3.2 时钟类的定义 221
13.3.3 时钟类的实现 222
13.3.4 程序功能的实现 223
13.3.5 操作步骤 225
习题 225
第14章 定制组件与异常处理 227
14.1 组件的继承 227
14.2 创建自定义组件的操作步骤 227
14.3 自定义组件实例 229
14.3.1 闪烁标签 229
14.3.2 自定义绘图板 232
14.4 异常处理 233
14.4.1 异常概述 233
14.4.2 异常类及异常处理机制 234
习题 237
第15章 多线程编程 239
15.1 线程的概念 239
15.2 C++Builder中的线程功能 239
15.2.1 线程的定义 239
15.2.2 线程的优先级 241
15.2.3 线程运行控制 242
15.2.4 线程的互斥与同步 242
15.3 线程应用实例:八皇后演示程序 243
15.3.1 问题说明 243
15.3.2 功能要求及组件设置 243
15.3.3 实现要点 244
15.3.4 线程类定义 245
15.3.5 程序功能的实现 246
15.3.6 程序清单 247
习题 249
附录 习题参考答案 252