第1章 C++与Visual C++.NET 1
1.1 C++语言与面向对象程序设计 1
1.1.1 C++语言及其发展 1
目录 1
1.1.2 面向对象的程序设计 2
1.2 Microsoft.NET及托管C++ 3
1.2.1 什么是Microsoft.NET框架 3
1.2.2 托管C++ 4
1.3.1 VC++.NET集成开发环境 5
1.3 简单的VC++.NET程序 5
1.3.2 程序的基本构成 7
1.3.3 信息的输入输出 8
小结 10
习题 10
第2章 数据类型、运算符和表达式 11
2.1 数据类型、变量与常量 11
2.1.1 数据类型 11
2.1.2 关键字 12
2.1.4 字面量 13
2.1.3 标识符 13
2.1.5 变量 14
2.2 运算符与表达式 15
2.2.1 算术运算符 15
2.2.2 关系运算符 16
2.2.3 逻辑运算符 16
2.2.4 位运算符 17
2.2.5 赋值与强制类型转换 17
2.2.7 表达式及运算符的优先级、结合性 18
2.2.6 条件运算符 18
小结 19
习题 20
第3章 语句与流程控制结构 21
3.1 语句 21
3.2 流程控制结构 22
3.3 选择结构 23
3.3.1 if选择结构 23
3.3.2 if-else选择结构 24
3.3.3 switch选择结构 25
3.4.1 for循环 26
3.4 循环结构 26
3.4.2 while语句 28
3.4.3 do-while语句 29
3.4.4 break语句和continue语句 29
小结 29
习题 30
第4章 函数、数组、指针和结构 32
4.1 函数 32
4.1.1 函数的定义与原型声明 32
4.1.2 值调用、引用调用与地址调用 36
4.1.3 递归函数 38
4.1.4 函数重载 39
4.1.5 函数模板 40
4.2 数组 41
4.2.1 一维数组 41
4.2.2 多维数组 43
4.3 指针 46
4.3.1 指针是地址 47
4.3.2 指针的声明 47
4.3.4 指针表达式 48
4.3.3 指针运算符 48
4.3.5 指针和数组 50
4.4 结构、联合和枚举 51
4.4.1 结构 51
4.4.2 联合 52
4.4.3 枚举 53
小结 54
习题 55
5.1 类的定义 56
第5章 面向对象编程:类与对象 56
5.1.1 类定义的格式 57
5.1.2 类存取控制 59
5.1.3 成员函数的定义 60
5.1.4 构造函数与析构函数 62
5.2 运算符重载 66
5.2.1 用成员函数重载运算符 67
5.2.2 ++和--的重载 69
5.3.1 属性 72
5.3 属性与索引属性 72
5.3.2 索引属性 73
5.4 类的静态成员 75
5.4.1 静态成员数据 76
5.4.2 静态成员函数 79
5.5 命名空间、嵌套类型与程序集 80
5.5.1 命名空间 80
5.5.2 嵌套类型 81
5.5.3 程序集 82
5.6.1 .NET Framework中常用的命名空间 83
5.6 .NET Framework基础类库 83
5.6.2 Object类 84
5.6.3 字符串 85
5.6.4 简单数据类型及转换 87
5.6.5 Math类与Random类 88
5.6.6 DateTime类与TimeSpan类 88
小结 90
习题 91
6.1.1 继承的概念与意义 92
第6章 面向对象的编程:继承 92
6.1 继承的基本概念 92
6.1.2 派生类的定义格式 93
6.1.3 赋值兼容规则 94
6.2 派生类的构造函数和析构函数 95
6.2.1 派生类的构造函数 95
6.2.2 派生类的析构函数 95
6.2.3 派生类构造函数与析构函数的应用 100
6.3.2 继承成员的重命名与重定义 101
6.3.1 恢复访问控制方式 101
6.3 继承成员的调整 101
小结 103
习题 104
第7章 面向对象的编程:多态性 105
7.1 虚函数与多态类 105
7.1.1 问题的引出 105
7.1.2 虚函数的概念与定义 106
7.1.3 动态绑定及其实现技术 108
7.2.1 纯虚函数 109
7.2 纯虚函数与抽象类 109
7.2.2 抽象类的概念与定义 110
7.2.3 继承与组合 111
7.2.4 _sealed类与_sealed方法 114
7.3 委托 114
7.3.1 委托的声明、实例化与调用 114
7.3.2 委托的合并 118
小结 120
习题 120
8.1 为什么要使用异常 122
第8章 异常处理 122
8.2 C++异常处理 124
8.2.1 C++异常处理语法 124
8.2.2 异常的嵌套 125
8.2.3 异常的重启动 127
8.2.4 对不同异常的处理 128
8.2.5 具有派生关系的异常对象 129
8.2.6 默认异常处理 132
8.3.1 结构化异常处理概述 133
8.3 结构化异常处理 133
8.2.7 异常说明 133
8.3.2 结构化异常处理语法 134
8.4 C++托管扩展异常处理 139
8.4.1 C++托管扩展异常处理概述 139
8.4.2 系统预定义的C++托管扩展异常类 140
8.4.3 利用C++托管扩展异常处理系统异常 141
8.4.4 自定义异常类 143
小结 145
习题 145
9.1 Windows窗体 148
第9章 设计应用程序界面 148
9.1.1 窗体设计器 149
9.1.2 窗体的常用属性 150
9.1.3 窗体的常用方法 151
9.1.4 窗体的常用事件 152
9.2 菜单设计 154
9.2.1 菜单设计器 155
9.2.2 合并菜单 155
9.2.4 动态修改菜单状态 156
9.2.3 把代码连接到菜单项上 156
9.3 弹出式菜单 160
9.4 多文档界面(MDI)应用程序 162
9.4.1 MDI窗体 162
9.4.2 创建MDI父窗体 162
9.4.3 加载和关闭MDI子窗体 162
9.4.4 与MDI有关的几个运行期属性 162
9.4.5 MDI应用程序实例 163
习题 165
小结 165
第10章 图形用户界面常用控件 167
10.1 控件的属性与布局 167
10.2 标签、文本框与按钮 168
10.2.1 标签 168
10.2.2 文本框 169
10.2.3 按钮 170
10.2.4 应用实例 170
10.3 复选框与单选按钮 171
10.3.1 复选框 171
10.3.2 单选按钮 172
10.3.3 应用实例 173
10.4 列表框与组合框 174
10.4.1 列表框 174
10.4.2 组合框 175
10.4.3 应用实例 175
10.5 组框与面板控件 177
10.6 拆分器控件 178
10.7.2 常用方法和事件 179
10.7.1 常用属性 179
10.7 计时器 179
10.7.3 应用实例 180
10.8 列表视图与树视图控件 180
10.8.1 列表视图控件 180
10.8.2 树视图控件 184
10.9 进度栏与状态栏控件 186
10.9.1 进度栏控件 186
10.9.2 状态栏控件 186
10.9.3 应用实例 187
10.10 跟踪条控件 189
10.11 通用对话框 190
小结 191
习题 191
第11章 图形、图像与多媒体编程 193
11.1 图形绘制的一些基本概念 193
11.1.1 基础支持类 193
11.1.2 图形上下文 194
11.1.3 图形绘制的一般步骤 195
11.2.1 画线的方法 197
11.2 Graphics方法的使用 197
11.2.2 绘制可填充图形 199
11.2.3 文本输出方法 201
11.2.4 图像绘制方法 201
11.2.5 坐标变换 203
11.2.6 路径的绘制 205
11.3 位图对象 206
11.3.1 在位图上绘图 206
11.3.2 透明位图 207
11.3.3 位图像素操作 208
11.4 图像处理程序的开发 209
11.4.1 图像处理程序工作的原理 209
11.4.2 获取图像像素值 210
11.4.3 图像处理功能的实现 210
11.5 动画技巧 216
11.5.1 图像的淡入淡出 216
11.5.2 程序中添加基于对象的动画 222
11.5.3 关于OpenGL及DirectX 225
11.6.1 多媒体的一些基本概念 226
11.6 媒体播放器 226
11.6.2 使用媒体播放器控件 227
小结 228
习题 229
第12章 流与文件操作 232
12.1 流 232
12.1.1 Steam类 232
12.1.2 FileStream类 233
12.1.3 MemoryStream类 234
12.2.1 文件与目录的管理 235
12.2 文件与目录 235
12.1.4 BufferedStream类 235
12.2.2 监控文件与目录的改动 242
12.3 文件的存取 244
12.3.1 顺序存取文件 244
12.3.2 随机存取文件 245
12.4 顺序文件的创建与读取 245
12.4.1 创建顺序文件 245
12.4.2 读取顺序文件 250
12.5.1 定位文件指针位置 252
12.5 随机存取文件 252
12.5.2 向随机文件中读写数据 253
小结 260
习题 261
第13章 数据库编程 262
13.1 一个简单的数据库程序 262
13.1.1 创建一个简单的数据库 262
13.1.2 创建一个简单的数据库程序 263
13.1.3 ADO.NET数据访问层次 264
13.2.1 ADO.NET结构 265
13.2 ADO.NET中的主要对象 265
13.2.2 Connection对象 266
13.2.3 Command对象 266
13.2.4 DataReader对象 267
13.2.5 DataAdapter对象 267
13.2.6 DataSet组件 268
13.3 操作数据库 268
13.3.1 使用Command和DataReader操作数据库 268
13.3.2 使用DataAdapter和DataSet操作数据库 270
13.4 DataView对象 272
13.5 在ADO.NET中使用XML 276
13.5.1 DataSet对象和XML 276
13.5.2 利用XML文件修改数据库数据 277
小结 279
习题 280
第14章 网络与多线程编程 282
14.1 远程处理 282
14.1.1 远程处理技术概述 282
14.1.2 几个重要的概念 283
14.1.3 远程处理的工作原理 284
14.1.4 基本远程处理框架 285
14.1.5 编译依赖接口的客户端 288
14.1.6 远程对象的异步调用 293
14.2 网络通信编程 298
14.2.1 使用System::Net 298
14.2.2 TcpListener与TcpClient类 300
14.2.3 使用数据报 303
14.2.4 E-mail编程 307
14.3.1 SOAP和Web服务的概念 308
14.3 Web服务 308
14.3.2 发布与使用Web服务 310
14.4 多线程编程 315
14.4.1 多线程的相关概念 315
14.4.2 线程的创建与控制 316
14.4.3 线程的同步 319
小结 324
习题 325
15.1.1 利用应用程序向导生成程序的框架 326
第15章 非托管代码编程 326
15.1 MFC编程 326
15.1.2 定义与初始化视图类数据成员 328
15.1.3 加入消息处理功能 329
15.1.4 实现文档 331
15.1.5 把文档存入磁盘文件 334
15.2 ATL Server编程 335
15.2.1 ATL Server的体系结构 336
15.2.2 ATL Server项目实例 336
15.2.3 ATL Server Web服务项目实例 339
15.3 托管代码与非托管代码的互操作性 340
15.3.1 It Just Works 341
15.3.2 平台调用服务 342
15.3.3 COM互操作服务 346
小结 351
习题 352
附录A 参考书与进一步阅读材料 353
A.1 参考书 353
A.2 网上资源 355