第1章C﹢﹢与面向对象程序设计概述 1
1.1面向过程与面向对象程序设计 1
1.2面向对象程序语言的特征 3
1.3 C﹢﹢与面向对象程序设计 6
1.4 C﹢﹢程序的结构 7
1.5数据输入与输出 10
1.5.1流的概念 10
1.5.2 cin和析取运算符>> 10
1.5.3 cout和插入运算符<< 12
1.5.4输出格式控制符 14
1.5.5数制基数 15
1.6编程实例——VC﹢﹢ 6.0编程简介 16
1.6.1在VC﹢﹢中编辑源程序 16
1.6.2编译和调试程序 18
1.6.3关于Visual C﹢﹢的项目工作区文件 19
1.6.4利用Visual C﹢﹢向导创建应用程序 20
习题1 21
第2章C﹢﹢基础 22
2.1 C﹢﹢对C语言数据类型的扩展 22
2.2局部变量声明 23
2.3指针 23
2.3.1指针概念的回顾 23
2.3.2指针与0和void 24
2.3.3 new和delete 25
2.4引用 27
2.5 const常量 29
2.5.1常量的定义 29
2.5.2 const与指针 30
2.5.3 const与引用 31
2.6类型转换 32
2.6.1隐式类型转换 32
2.6.2显式类型转换 33
2.7函数 34
2.7.1函数原型 34
2.7.2函数默认参数 36
2.7.3函数与引用 36
2.7.4函数与const 40
2.7.5函数重载 41
2.8内联函数 43
2.9 typedef 44
2.10命名空间 44
2.11预处理器 47
2.12作用域和生命期 48
2.12.1作用域 48
2.12.2变量类型及生命期 50
2.12.3变量初始化 52
2.12.4局部变量与函数返回地址 52
2.13文件输入和输出 53
2.14编程实例 54
习题2 56
第3章 类与对象 59
3.1结构与类 59
3.1.1 C﹢﹢对结构的扩展 59
3.1.2类 60
3.2成员函数 62
3.2.1成员函数的定义 62
3.2.2常量成员函数 63
3.3类与封装 64
3.4对象 65
3.5构造函数 67
3.5.1构造函数 67
3.5.2无参构造函数 69
3.5.3重载构造函数 71
3.5.4拷贝构造函数 72
3.5.5构造函数与初始化列表 75
3.6析构函数 77
3.7静态成员 79
3.8 this指针 82
3.9类对象成员 85
3.10对象数组和对象指针 88
3.11向函数传递对象 89
3.12类的作用域和对象的生存期 90
3.13友元 92
3.14编程实例:类的接口与实现的分离 94
3.14.1头文件 94
3.14.2源文件 95
3.14.3对类的应用 96
习题3 98
第4章 继承 102
4.1继承的概念 102
4.2 protected和继承 103
4.3继承方式 104
4.4基类与派生类的关系 107
4.4.1成员函数的重定义和名字隐藏 107
4.4.2基类成员访问 109
4.5构造函数和析构函数 109
4.5.1派生类构造函数、析构函数的定义和调用次序 109
4.5.2构造函数和析构函数的构造规则 110
4.6多继承 115
4.6.1多继承的概念和应用 115
4.6.2多继承方式下成员名的二义性 117
4.6.3多继承的构造函数与析构函数 117
4.7虚拟继承 119
4.8基类与派生类对象的关系 123
4.9继承与组合 125
4.10编程实例 125
习题4 130
第5章 多态性 133
5.1静态绑定和动态绑定 133
5.2虚函数 133
5.2.1虚函数的意义 133
5.2.2虚函数的特性 136
5.3虚析构函数 140
5.4纯虚函数与抽象类 141
5.4.1纯虚函数和抽象类 141
5.4.3抽象类的应用 143
5.4运行时类型信息 149
5.4.1 dynamic cast 149
5.4.2 typeid 153
5.5编程实例 154
习题5 156
第6章 运算符重载 159
6.1运算符重载基础 159
6.2重载二元运算符 161
6.2.1类与二元运算符重载 161
6.2.2友元二元运算符重载的特殊用途 164
6.3重载一元运算符 166
6.3.1作为成员函数重载 166
6.3.2作为友元函数重载 167
6.4特殊运算符重载 169
6.4.1运算符++和--的重载 169
6.4.2重载赋值运算符= 171
6.4.3重载[] 173
6.4.4类与其他数据类型之间的转换 175
6.5输入/输出运算符重载 177
6.5.1重载输出运算符<< 177
6.5.2重载输入运算符>> 177
6.5.3重载运算符<<和>>举例 178
6.6编程实例 179
习题6 183
第7章 模板与STL 186
7.1模板概念 186
7.2函数模板与模板函数 187
7.2.1函数模板的定义 187
7.2.2函数模板的实例化 188
7.2.3模板参数 189
7.3类模板 192
7.3.1类模板的概念 192
7.3.2类模板的定义 192
7.3.3类模板实例化 194
7.3.4类模板的使用 196
7.4 STL 197
7.4.1容器 197
7.4.2迭代器 205
7.4.3关联式容器 207
7.4.4算法 211
7.5编程实例 214
习题7 216
第8章 异常 217
8.1异常处理概述 217
8.2C﹢﹢异常处理基础 218
8.2.1异常处理的结构 218
8.2.2异常捕获 219
8.3异常与函数 220
8.4异常处理的几种特殊情况 222
8.5异常和类 225
8.5.1构造函数与异常 225
8.5.2异常类 226
8.5.3派生异常类的处理 230
习题8 232
第9章 文件与流 235
9.1 C﹢﹢I/O流及流类库 235
9.2使用I/O成员函数 236
9.2.1 istrean流中的常用成员函数 237
9.2.2 ostream流中的常用成员函数 239
9.2.3数据输入、输出的格式控制 240
9.3文件操作 242
9.3.1文件与流 243
9.3.2二进制文件 245
9.3.3随机文件 249
习题9 250
第10章C﹢﹢Windows程序设计基础 253
10.1Windows程序设计基础 253
10.1.1窗口 253
10.1.2事件驱动和消息响应 253
10.1.3 Windows程序的文件构成 254
10.1.4 Visual C﹢﹢的Windows程序设计方法 255
10.2 Windows程序设计的常用数据结构 256
10.3 Windows程序的基本结构 259
10.4 Windows程序的控制流程 261
10.5 Windows程序的数据输出 267
10.6消息驱动程序设计 270
习题10 273
第11章MFC程序设计 275
11.1 MFC程序基础 275
11.1.1 MFC类 275
11.1.2 MFC程序的结构 277
11.1.3 MFC程序的执行流程 279
11.1.4消息映射 281
11.2应用程序框架 283
11.2.1应用程序框架的概念 283
11.2.2用向导建立应用程序框架 283
11.2.3应用程序框架的结构 286
11.2.4应用程序框架类之间的关系 292
11.3 MFC程序的数据输出 294
11.3.1 MFC中的图形类 294
11.3.2绘图对象 296
11.3.3用MFC向导添加消息映射函数 297
11.3.4 OnPaint函数与输出 302
11.4对话框 304
11.4.1对话框的类型 304
11.4.2用资源编辑器建立对话框 304
11.5菜单和工具栏 310
11.5.1直接修改应用程序框架的菜单 310
11.5.2建立新菜单栏 313
11.5.3工具栏操作 314
11.6视图与文档 315
习题11 318
第12章 综合程序设计 320
12.1在应用程序框架中包含并修改自定义类 320
12.2在事件函数中操作类对象 322
12.3添加对话框 325
12.4添加程序菜单 327
12.5文档序列化 331
习题12 341