第1章 C++的输入/输出和非面向对象的一些特性 1
1.1 C++的输入/输出 1
1.1.1 案例程序——学生信息的输入和输出 1
1.1.2 对cout、<<、cin和>>的说明 3
1.2 结构、联合和枚举名可直接作为类型名 4
1.3 动态内存分配与释放:new和delete运算符 5
1.4 引用 8
1.4.1 指针作为函数参数和引用作为函数参数的比较 8
1.4.2 引用的概念和使用方法 12
1.5 const关键字 15
1.6 函数声明 19
1.7 内联函数 20
1.8 作用域运算符∷ 21
1.9 函数重载 22
1.10 带有默认参数的函数 25
习题 28
第2章 类与对象 30
2.1 类与对象 30
2.1.1 案例程序——利用类与对象实现学生信息的输入和输出 30
2.1.2 类与对象的定义及使用方法 32
2.2 构造函数与析构函数 38
2.2.1 构造函数 39
2.2.2 构造函数的重载 41
2.2.3 带默认参数的构造函数 42
2.2.4 析构函数 43
2.2.5 复制构造函数 46
2.3 对象数组和对象指针 52
2.4 常对象成员和常对象 54
2.4.1 常成员函数和常对象 54
2.4.2 常数据成员和构造函数初始化表 56
2.5 this指针 57
2.5.1 this指针的概念 58
2.5.2 this指针的用途 60
2.6 静态数据成员和静态成员函数 61
2.6.1 静态数据成员 62
2.6.2 静态成员函数 64
2.7 友元 66
2.7.1 非成员函数作为友元 66
2.7.2 类的成员函数作为另一个类的友元 67
2.7.3 友元类 68
2.7.4 对友元概念的说明 69
2.8 类对象作为成员 70
习题 74
第3章 派生类与继承 76
3.1 派生类的引入 76
3.2 基类与派生类 78
3.3 派生类的构造函数与析构函数 84
3.3.1 派生类的构造函数 84
3.3.2 派生类的析构函数 85
3.3.3 含有对象成员的派生类的构造函数 86
3.4 同名成员和赋值兼容规则 88
3.4.1 同名成员 88
3.4.2 赋值兼容规则 89
3.5 具有多个层次的单继承 90
3.6 多继承与虚基类 92
3.6.1 多继承中的二义性问题 92
3.6.2 虚基类 95
习题 96
第4章 C++的多态性 99
4.1 运算符重载 99
4.1.1 通过成员函数实现运算符的重载 99
4.1.2 通过友元函数实现运算符的重载 102
4.1.3 通过类外的普通函数实现运算符的重载 104
4.1.4 “++”和“--”运算符的重载 105
4.1.5 对运算符重载的进一步说明 108
4.2 虚函数 108
4.2.1 虚函数的引入 109
4.2.2 虚函数的定义与使用 111
4.2.3 虚析构函数 111
4.3 纯虚函数和抽象类 113
习题 116
第5章 模板 118
5.1 函数模板 118
5.1.1 使用函数模板的案例程序 118
5.1.2 函数模板的使用方法说明 122
5.2 类模板 123
5.2.1 使用类模板的案例程序 123
5.2.2 类模板的使用方法说明 125
习题 127
第6章 基于C++流类库的文件输入/输出及C++程序的组织 129
6.1 C++流类库 129
6.1.1 C++的流 129
6.1.2 C++的流类库 130
6.2 利用C++文件流类进行文本文件的读写 130
6.2.1 进行文本文件读写的案例程序 131
6.2.2 C++文件流类及其使用方法 134
6.3 利用C++文件流类进行二进制文件的读写 136
6.3.1 利用write()和read()函数实现二进制文件读写的案例程序 137
6.3.2 利用get()和put()函数实现二进制文件读写的案例程序 140
6.4 C++程序的组织 141
习题 144
第7章 Windows编程与MFC原理 146
7.1 Windows编程基础 146
7.1.1 Windows API函数 146
7.1.2 窗口与句柄 146
7.1 3 事件与消息 147
7.2 一个简单的Windows应用程序 148
7.2.1 Windows应用程序实例 148
7.2.2 WinMain()函数 151
7.2.3 创建窗口 152
7.2.4 消息循环 153
7.2.5 窗口函数 154
7.3 MFC基础 154
7.3.1 MFC概述 155
7.3.2 MFC的类及其层次 155
7.3.3 MFC的宏 156
7.3.4 MFC的全局函数 158
7.4 MFC应用程序框架 158
7.4.1 应用程序对象 158
7.4.2 入口函数 158
7.4.3 InitInstance()函数 159
7.4.4 Run()函数 160
7.5 MFC消息管理 161
7.5.1 消息的发送 161
7.5.2 MFC的消息映射机制 162
习题 163
第8章 对话框和控件 164
8.1 案例描述——计算器 164
8.2 乘法计算器 164
8.2.1 基于对话框的应用程序 164
8.2.2 控件的基本概念 169
8.2.3 对话框的组成及运行机制 169
8.2.4 对话框的属性 171
8.2.5 静态文本控件 174
8.2.6 文本编辑框控件 178
8.2.7 为控件定义关联变量 182
8.2.8 DDX/DDV机制 184
8.2.9 按钮控件 186
8.2.10 控件布局管理 190
8.2.11 CString类 191
8.2.12 补充案例 193
8.3 算术计算器 196
8.3.1 组合框控件 197
8.3.2 AfxMessageBox()函数 204
8.4 整数计算器 205
8.5 进制转换计算器 209
8.5.1 单选按钮控件 209
8.5.2 复选框控件 213
8.5.3 补充案例 215
8.6 复杂计算器 217
8.6.1 新建对话框 217
8.6.2 旋钮控件 218
8.6.3 选项卡控件 223
习题 228
第9章 对话框高级应用 230
9.1 案例描述——电话簿管理 230
9.2 电话簿分组 230
9.2.1 树控件 231
9.2.2 图像列表 238
9.3 电话簿人员信息显示 241
9.3.1 列表视图控件 241
9.3.2 右键菜单 246
9.3.3 非模态对话框 250
9.4 通用对话框 252
9.4.1 文件对话框 253
9.4.2 颜色对话框 254
9.4.3 字体对话框 256
习题 257
第10章 文档与视图 258
10.1 文本显示案例的描述 258
10.2 单文档应用程序的基本结构 258
10.2.1 利用向导建立一个单文档应用程序框架 259
10.2.2 向导生成的核心类及其功能 260
10.2.3 文档/视图结构 261
10.3 文字的显示 264
10.3.1 在OnDraw()中实现屏幕输出 264
10.3.2 菜单 270
10.3.3 鼠标消息的响应 277
10.3.4 设计应用程序界面元素 280
10.3.5 使用CFontDialog类 297
10.3.6 为菜单命令添加快捷键 300
10.3.7 对象链表的使用 302
10.3.8 自定义类的序列化 308
习题 313
第11章 图形的绘制 314
11.1 绘图系统案例的描述 314
11.1.1 绘图系统的功能 314
11.1.2 基类CLineType和CFill 314
11.1.3 绘图系统的类层次结构 315
11.1.4 绘图系统的初步框架 315
11.2 非封闭图元的绘制 318
11.2.1 直线的绘制 318
11.2.2 定义直线类 321
11.2.3 画笔的使用 326
11.2.4 实现绘图的拖曳显示 333
11.2.5 鼠标与键盘组合键的使用 339
11.2.6 自由曲线的绘制 344
11.3 封闭图元的绘制 350
11.3.1 矩形类的实现与矩形的绘制 350
11.3.2 画刷 355
11.3.3 椭圆(圆)、扇形、多边形、圆角矩形的绘制 360
11.4 图形文件的保存与读取 361
习题 364
第12章 多文档程序开发 365
12.1 多文档界面 365
12.2 多文档应用程序案例——简单文本编辑器 366
12.3 向导生成的类、文件和代码 369
12.4 多重视图的应用程序 371
12.5 多重文件的应用程序 375
习题 379
第13章 Visual C++高级编程 380
13.1 数据库访问编程 380
13.1.1 ODBC数据库访问概述 380
13.1.2 创建学生数据库 381
13.1.3 配置数据源 381
13.1.4 创建数据库应用程序框架 383
13.1.5 实现数据库记录浏览功能 385
13.1.6 实现数据库记录的添加、修改和删除功能 389
13.1.7 实现数据库记录的查找功能 392
13.1.8 MFC的ODBC类 395
13.2 动态链接库编程 397
13.2.1 动态链接库概述 398
13.2.2 动态链接库的创建 399
13.2.3 动态链接库的使用 402
13.3 多线程编程 406
13.3.1 多线程的引入 406
13.3.2 多线程概述 407
13.3.3 多线程的创建 408
13.3.4 MFC工作者线程编程 409
13.3.5 MFC用户界面线程编程 410
13.3.6 线程间通信 413
习题 416
附录A Visual C++6.0集成开发环境 417
A.1 Visual C++6.0集成开发环境概述 417
A.2 集成开发环境的菜单功能 418
A.2.1 File菜单 418
A.2.2 Edit菜单 419
A.2.3 View菜单 419
A.2.4 Insert菜单 420
A.2.5 Proiect菜单 420
A.2.6 Build菜单 420
A.2.7 Tools菜单 420
A.2.8 Window菜单 421
A.2.9 Help菜单 422
A.3 集成开发环境的工具栏 422
A.3.1 标准工具栏 422
A.3.2 小型编译/链接/运行工具栏 423
A.3.3 类向导工具栏 424
A.3.4 工具栏的显示与隐藏 424
A.4 项目工作区和项目 425
A.4.1 项目工作区与项目的构成 425
A.4.2 ClassView 425
A.4.3 ResourceView 426
A.4.4 FileView 426
A.4.5 项目设置 426
A.5 创建控制台应用程序 427
A.6 程序的调试 429
A.6.1 查找源程序中的语法错误 429
A.6.2 Visual C++6.0调试器的使用 429
参考文献 436