第1章 程序设计基础 1
1.1 C++中的数据类型 1
1.1.1 基本数据类型和非基本数据类型 1
1.1.2 C_string和C++String 3
1.1.3 数组与向量vector 5
1.1.4 指针与引用 7
1.2 运算符和表达式 9
1.2.1 算术运算符和赋值运算符 9
1.2.2 关系运算符和逻辑运算符 10
1.2.3 运算符的优先级和结合性 12
1.3 程序控制结构 13
1.3.1 顺序结构 13
1.3.2 分支结构 13
1.3.3 循环结构 16
1.4 函数 17
1.4.1 函数的定义 18
1.4.2 函数参数的传递 18
1.4.3 函数的返回值 21
本章小结 23
习题 24
第2章 类(class) 25
2.1 类的概念 25
2.1.1 面向对象思想 25
2.1.2 类与对象的定义 25
2.1.3 成员变量及成员函数 27
2.2 隐藏实现 33
2.3 访问控制 36
2.3.1 private 36
2.3.2 protected 37
2.3.3 public 37
2.4 访问控制 41
2.4.1 友元函数 41
2.4.2 嵌套友元 43
2.4.3 友元与面向对象 46
本章小结 46
习题 47
第3章 对象的创建和销毁 48
3.1 对象的创建 48
3.1.1 构造函数 48
3.1.2 初始化参数列表 50
3.1.3 默认构造函数 53
3.1.4 拷贝构造函数 56
3.2 析构函数 61
3.2.1 析构函数的作用 61
3.2.2 析构函数的调用 64
3.3 new和delete用于对象 66
3.3.1 动态创建对象 66
3.3.2 new和delete用于数组 68
3.3.3 内存管理 69
本章小结 72
习题 73
第4章 函数重载 74
4.1 函数重载概述 74
4.1.1 函数重载的概念 74
4.1.2 全局函数与成员函数重载 76
4.2 操作符重载 78
4.2.1 一元运算符 79
4.2.2 二元运算符 84
4.2.3 不能重载的运算符 93
4.2.4 new和delete重载 94
4.3 函数重载与默认参数 98
本章小结 100
习题 101
第5章 流处理 102
5.1 C++流的概念 102
5.2 输入/输出流 103
5.2.1 庞大的I/O类库 103
5.2.2 预定义流对象cin 103
5.2.3 预定义流对象cout、cerr和clog 105
5.3 输入/输出的格式控制 106
5.3.1 ios类中的枚举常量 106
5.3.2 ios类中的成员函数 107
5.3.3 格式控制操作符 110
5.4 文件操作 113
5.4.1 文件的概念 113
5.4.2 文件的打开与关闭 113
5.4.3 字符文件的访问操作 115
5.5 字符串流 115
本章小结 117
习题 118
第6章 异常和错误 119
6.1 异常与bug 119
6.2 异常的体系结构 121
6.3 使用异常 124
6.4 调试 128
本章小结 131
习题 131
第7章 const和inline 133
7.1 const变量 133
7.1.1 const与值替代 133
7.1.2 常量指针与指针常量 135
7.1.3 常量引用 137
7.1.4 传递const值 138
7.1.5 返回const值 139
7.2 const成员变量与成员函数 140
7.3 内联函数 143
7.3.1 inline和编译器 143
7.3.2 inline函数与程序效率 145
本章小结 147
习题 147
第8章 作用域与名字空间 148
8.1 作用域与名字空间概述 148
8.1.1 作用域和生命周期 148
8.1.2 名字空间 160
8.2 static关键字 172
8.2.1 内存分配方式 172
8.2.2 static用于限制存储 173
8.2.3 static成员函数 176
8.2.4 static用于控制链接 178
8.3 预处理命令 181
本章小结 184
习题 185
第9章 继承 187
9.1 继承与组合 187
9.1.1 继承的概念与语法 187
9.1.2 组合的概念与语法 190
9.2 继承方式 192
9.2.1 私有继承 192
9.2.2 受保护继承 194
9.2.3 公有继承 194
9.2.4 多重继承 194
9.3 派生类的构造与析构 196
9.3.1 成员对象的初始化 197
9.3.2 构造次序 199
9.3.3 析构次序 203
9.4 派生类的使用 203
9.4.1 类对象创建与使用 203
9.4.2 向上映射 205
9.4.3 指针和引用的向上类型转换 206
本章小结 207
习题 208
第10章 多态与虚函数 209
10.1 概述 209
10.2 多态 211
10.2.1 多态的概念 211
10.2.2 虚函数与重写 211
10.2.3 虚析构与虚构造 213
10.2.4 纯虚函数和抽象基类 218
10.3 晚绑定机制 221
10.3.1 函数调用绑定 221
10.3.2 虚表和虚指针 222
本章小结 226
习题 227
第11章 模板 229
11.1 模板概述 229
11.2 模板函数 230
11.2.1 模板函数的重载 230
11.2.2 模板函数的语法 234
11.2.3 模板函数的使用 236
11.3 模板类 238
11.3.1 模板类的创建及使用 238
11.3.2 迭代器的创建及使用 242
11.4 模板的多态 245
11.4.1 模板类的继承 245
11.4.2 模板类多态 246
11.5 高级编程 252
11.5.1 动多态设计(Dynamic Polymorphism) 252
11.5.2 静多态设计(Static Polymorphism) 254
11.5.3 泛型编程(Generic Polymorphism) 257
本章小结 260
习题 260
第12章 STL简介 263
12.1 C++标准库及其组成 263
12.1.1 C++标准库 263
12.1.2 标准库的组成 264
12.2 STL容器和迭代器简介 266
12.2.1 STL容器 266
12.2.2 STL迭代器 269
12.2.3 综合应用:Josephus问题 270
12.3 STL通用算法简介 272
12.3.1 STL算法的结构及常用算法 272
12.3.2 STL常用算法使用实例 274
本章小结 279
习题 280
第13章 MFC编程基础 281
13.1 Windows编程及MFC简介 281
13.1.1 Windows API编程基础 281
13.1.2 MFC编程简介 287
13.2 基于对话框的应用程序设计 291
13.2.1 利用MFC的AppWizard创建基于对话框的应用程序 291
13.2.2 Windows控件简介 292
13.2.3 基于对话框的应用程序实例解析 294
13.3 单文档(SDI)和多文档(MDI)应用程序 297
13.3.1 文档/视图结构概述 298
13.3.2 文档/视图结构中的一些重要概念 298
13.3.3 菜单的编辑和使用 299
13.3.4 单文档应用程序实例解析 301
本章小结 302
习题 303
参考文献 304