第1章 C++语言基础 1
1.1 数据类型 1
1.1.1 基本数据类型 1
1.1.2 枚举类型 2
1.1.3 结构体 2
1.2 基本语句 3
1.2.1 赋值语句 3
1.2.2 自加减表达式语句 3
1.2.3 分支语句 4
1.2.4 循环语句 5
1.2.5 流程控制语句 6
1.3 变量 7
1.3.1 变量的定义方法 7
1.3.2 const类型限定符 8
1.3.3 函数形式的变量类型转换 8
1.4 函数 8
1.4.1 返回值 9
1.4.2 输入型参数 10
1.4.3 输出型参数 10
1.4.4 系统库函数和用户自定义函数 12
1.4.5 函数原型 12
1.4.6 内联函数 13
1.4.7 带默认参数的函数 14
1.4.8 函数重载 15
1.5 指针和引用 16
1.5.1 指针变量 16
1.5.2 引用变量 17
1.6 自定义语句 19
1.7 程序预处理 20
1.8 new和delete运算符 21
1.9 输入和输出 22
1.10 名字空间 24
习题1 25
第2章 面向对象程序设计 31
2.1 从面向过程到面向对象 31
2.1.1 设计实例对比 31
2.1.2 从面向过程到面向对象 34
2.2 面向对象技术的基本概念 35
2.2.1 类 35
2.2.2 实例 36
2.2.3 消息 37
2.3 面向对象技术的基本特征 37
2.3.1 抽象性 38
2.3.2 封装性 38
2.3.3 继承性 38
2.3.4 多态性 40
2.4 面向对象的软件开发 41
2.4.1 面向对象分析 41
2.4.2 面向对象设计 45
2.4.3 面向对象实现 45
2.5 面向对象程序设计的优点 46
习题2 47
第3章 类和对象 50
3.1 类 50
3.1.1 类的定义 50
3.1.2 成员变量 53
3.1.3 构造函数和类的实例化 54
3.1.4 成员函数和对象的消息 56
3.1.5 析构函数 59
3.1.6 const修饰符 61
3.1.7 成员函数重载 63
3.2 对象 67
3.3 对象成员变量 72
3.3.1 整体一部分对象模式和子对象 72
3.3.2 子对象和构造函数设计 74
3.3.3 构造函数和析构函数自动调用过程 76
3.4 内部类 78
3.5 static成员 80
3.6 自引用对象指针this 82
3.7 抽象过程与类 85
3.8 设计举例——银行贷记卡系统 85
习题3 90
第4章 友元和运算符重载 102
4.1 友元的概念 102
4.2 定义友元的方法 103
4.3 运算符重载 105
4.3.1 运算符重载的定义和规定 105
4.3.2 运算符重载为类的成员函数 106
4.3.3 运算符重载为类的友元函数 109
4.3.4 两种运算符重载方法的比较 112
4.4 设计举例 113
4.4.1 数组类设计 113
4.4.2 字符串类设计 117
习题4 122
第5章 继承 126
5.1 面向对象的重要特征:继承性 126
5.2 继承概述 127
5.2.1 基类、派生类和保护成员 127
5.2.2 派生类的定义 127
5.2.3 派生类的3种继承方式 128
5.2.4 派生类的基类子对象 132
5.2.5 派生类的析构函数 132
5.2.6 派生类与基类的关系 134
5.3 赋值兼容规则 135
5.4 派生类对基类成员函数的覆盖 137
5.5 多重继承 139
5.5.1 多重继承的意义 139
5.5.2 多重继承的设计方法 140
5.5.3 多重继承的二义性问题 140
5.5.4 虚基类 144
5.6 设计举例 147
5.6.1 图书馆信息——公有继承举例 147
5.6.2 链式堆栈——私有继承举例 154
习题5 159
第6章 运行时的多态性和抽象类 170
6.1 面向对象的重要特征:多态性 170
6.2 运行时的多态性 171
6.2.1 虚函数和运行时的多态性 171
6.2.2 动态绑定 173
6.2.3 虚函数和派生类对基类成员函数覆盖的区别 173
6.2.4 虚析构函数 175
6.3 抽象类 177
6.4 设计举例 180
习题6 187
第7章 模板 189
7.1 参数多态性和模板 189
7.1.1 参数多态性 189
7.1.2 模板 192
7.2 类模板 193
7.3 函数模板 195
习题7 196
第8章 异常处理 198
8.1 异常和异常处理 198
8.1.1 异常的基本类型 198
8.1.2 传统的异常处理方法及其问题 198
8.2 C++语言的异常处理方法 200
8.2.1 基本的异常处理方法 200
8.2.2 多个异常的处理方法 204
8.3 异常类的设计 207
8.4 异常抛出和处理的两种方式 210
习题8 212
第9章 I/O流类库 214
9.1 基本概念 214
9.2 C++的基本流类结构 214
9.3 istream类和ostream类 216
9.4 格式控制 218
9.4.1 格式控制成员函数 218
9.4.2 操作符 220
9.5 文件的读/写 222
9.5.1 文件的打开和关闭 223
9.5.2 文本文件的读/写 225
9.5.3 二进制代码文件的读/写 228
9.5.4 随机访问文件 230
9.6 可流类 231
习题9 233
第10章 MFC编程 235
10.1 MFC体系结构 235
10.2 用MFC AppWizard自动生成Windows程序 236
10.2.1 应用程序框架 236
10.2.2 MFC消息映射 247
10.2.3 使用ClassWizard工具 255
10.3 文档/视图结构 263
10.3.1 文档模板类 264
10.3.2 文档类 265
10.3.3 视图类 271
10.4 MFC Windows应用程序典型执行过程 273
10.4.1 Windows应用程序执行过程 273
10.4.2 MFC Windows应用程序执行过程 274
习题10 276
第11章 对话框及常用控件 277
11.1 对话框的创建与使用 277
11.1.1 对话框的创建 277
11.1.2 对话框的使用 284
11.1.3 对话框的销毁 288
11.1.4 对话框数据交换和验证机制 293
11.2 MFC通用对话框 296
11.2.1 文件对话框 296
11.2.2 字体对话框 297
11.2.3 颜色对话框 298
11.3 常用控件 299
11.3.1 静态文本控件 301
11.3.2 组框控件 302
11.3.3 编辑框控件 303
11.3.4 按钮控件 304
11.3.5 列表框控件 306
11.3.6 组合框控件 308
11.4 简单数据类型 316
11.4.1 CString类 317
11.4.2 CTime类 319
11.4.3 CPoint类 322
11.4.4 CRect类 323
11.4.5 CSize类 327
习题11 328
参考文献 330