第1章 面向对象的特征概述 1
1.1 面向对象的程序设计提出 2
1.2 对象的概念 4
1.3 类的概念 6
1.4 消息 7
1.5 面向对象编程方法的基本特征 8
1.5.1 抽象 8
1.5.2 继承 8
1.5.3 封装 9
1.5.4 多态性 10
1.6 面向对象的软件设计思想 10
1.7 Visual C++6.0环境下的程序调试 11
1.7.1 Visual C++6.0源程序编辑、编译、连接、运行过程 11
1.7.2 打开已存在的文件 16
1.7.3 C++程序的调试 16
习题 21
第2章 C++的基本概念 22
2.3 C++的输入/输出流 23
2.2 C++的单行注释 23
2.1 引言 23
2.4 变量声明的位置 25
2.5 内联函数 26
2.6 默认的函数参数 28
2.7 引用参数 30
2.7.1 定义变量或对象的别名 30
2.7.2 定义函数的引用类型参数 31
2.7.3 定义函数的引用类型返回值 32
2.8.1 const限定符的声明格式 33
2.8 const限定符 33
2.8.2 带有指针的const限定符 34
2.9 域分辨操作符 35
2.10 运算符new和delete 36
2.11 函数重载 39
习题 40
第3章 类与对象 45
3.1 类的基本概念 46
3.1.1 类的定义 46
3.1.2 类成员函数的定义方法 48
3.1.3 类对象的定义及引用方法 50
3.2 数据封装 54
3.2.1 类的私有成员 54
3.2.2 类的公有成员 55
3.3 类构造函数 56
3.3.1 构造函数的特点 56
3.3.2 构造函数的应用 58
3.3.3 缺省参数的构造函数 62
3.3.4 拷贝构造函数 63
3.4 类的析构函数 65
3.4.1 析构函数的特点 65
3.4.2 析构函数调用顺序举例 66
3.5 类静态成员 70
3.5.1 类的静态数据成员 70
3.5.2 类的静态成员函数 73
3.6 类的友元 76
3.6.1 友元函数 76
3.6.2 友元成员 78
3.6.3 友元类 79
3.7 容器类 82
3.8 类与结构 83
3.9 对象数组与对象指针 85
3.9.1 对象数组 85
3.9.2 指向类对象的指针 87
3.9.3 指向类成员的指针 88
3.9.4 this指针 91
习题 92
第4章 继承 103
4.1 继承与派生 104
4.2 单继承 105
4.2.1 单继承 105
4.2.2 公有继承 106
4.2.3 私有继承 108
4.2.4 保护继承 110
4.3 派生类的构造函数和析构函数 111
4.3.1 派生类构造函数和析构函数的执行顺序 112
4.3.2 基类和派生类的赋值兼容规则 117
4.4 多继承 119
4.4.1 多继承中派生类的构造函数与析构函数 120
4.4.2 多继承中的二义性问题 123
4.5 虚基类 124
习题 128
第5章 运算符重载 134
5.1 运算符重载的基本概念 135
5.1.1 C++中可重载的运算符 135
5.1.2 运算符重载的定义形式 136
5.2 成员函数重载运算符 136
5.3 友元函数重载运算符 138
5.4 成员函数重载运算符与友元函数重载运算符比较 141
5.5 单目运算符的重载 142
5.6 赋值运算符的重载 146
5.7 二元运算符的重载 148
5.8 重载运算符 152
习题 153
第6章 虚拟函数与多态性 158
6.1 静态联编与动态联编 159
6.1.1 静态联编 159
6.1.2 动态联编 160
6.2 多态性的概念 161
6.3 虚拟函数 163
6.3.1 虚拟函数的定义 163
6.3.2 虚拟函数的调用 164
6.3.3 虚函数和重载函数的区别 168
6.4 构造函数和析构函数对虚函数的调用 170
6.5 虚拟函数的使用 171
6.5.1 虚拟函数的继承 171
6.5.2 多重继承与虚函数 174
6.5.3 派生类直接调用基类中的虚拟函数 175
6.6 虚拟函数的数据封装 175
6.7 纯虚函数与抽象类 177
6.7.1 纯虚函数 177
6.7.2 抽象类 177
6.8 多态性的异质单向链 180
习题 185
第7章 模板和异常处理 194
7.1 模板 195
7.1.1 函数模板 196
7.1.2 类模板 201
7.2 异常处理 208
7.2.1 异常处理的基本思想 209
7.2.2 异常处理的实现 209
7.2.3 异常生命周期 211
7.2.4 异常规格说明 212
7.2.5 异常处理中的构造与析构 212
习题 214
第8章 I/O流与文件 215
8.1 C++流的概念 216
8.2 用ios类的成员函数实现格式化输入与输出 217
8.3 用操纵符实现格式化输入与输出 221
8.4 文件的操作 224
8.4.1 文件的操作过程 224
8.4.2 文件的打开与关闭 225
8.4.3 文件的操作方式 226
8.4.4 文本文件应用举例 227
8.4.5 二进制文件的操作 229
8.4.6 文件的随机读/写 230
8.5 用户自定义类型的输入/输出 232
8.5.1 输出运算符“〈〈”重载 233
8.5.2 输入运算符“〉〉”重载 234
习题 238
第9章 可视化程序设计初步 245
9.1 Windows程序设计基本概念 246
9.1.1 Windows消息 246
9.1.2 消息的种类 246
9.2 Windows程序设计举例 248
9.2.2 CFrameWnd类 249
9.2.1 CWinApp类 249
9.2.3 应用程序举例1 250
9.2.4 应用程序举例2 252
9.2.5 应用程序举例3 254
9.2.6 应用程序举例4 259
9.2.7 应用程序举例5 264
9.2.8 应用程序举例6 267
习题 280
主要参考文献 281