第1篇 C++概述 2
第1章由C迁移到C++ 2
1.1 C++的起源和特点 2
1.1.1 C++的起源 2
1.1.2 C++的特点 3
1.2入门实例:Hello World小程序 4
1.3 C++源程序的构成 5
1.3.1 C++程序的一般格式 5
1.3.2 C++程序的开发步骤 7
1.3.3 C++程序的编译和链接 7
1.4 C与C++的比较 9
1.4.1程序设计思想的区别 9
1.4.2语法规范的区别 9
1.5本章小结 10
1.6本章习题 10
第2章C++代码规范 11
2.1文件组织 11
2.1.1头文件注释 11
2.1.2头文件 12
2.1.3内联函数定义文件 14
2.1.4实现文件 15
2.1.5文件的组织结构 16
2.2排版风格 17
2.2.1缩进与对齐 17
2.2.2空行 19
2.2.3空格 21
2.2.4风格 22
2.3命名规范 24
2.3.1一般规范 24
2.3.2类/结构 25
2.3.3函数 27
2.3.4变量 28
2.3.5枚举、联合、typedef 29
2.3.6宏和常量命名 30
2.4代码设计风格 30
2.4.1表达式设计 31
2.4.2条件语句设计 31
2.4.3循环语句设计 33
2.4.4常量设计 34
2.4.5函数设计 35
2.5注释规范 36
2.6本章小结 36
2.7本章习题 37
第2篇 C++基本语言 40
第3章 C++数据类型 40
3.1基本数据类型 40
3.1.1整型——整型数据的存储形式 41
3.1.2整型——整型数据的定义 42
3.1.3整型——整型常量 42
3.1.4整型——整型数据的分类 43
3.1.5整型——关于整型数据分类的说明 44
3.1.6整型——整型数据实例 45
3.1.7浮点类型——浮点数据类型的表示方法 46
3.1.8浮点类型——浮点数在内存中的存储形式 46
3.1.9浮点类型——浮点数的分类和定义 47
3.1.10浮点类型——浮点数的精度范围 47
3.1.11浮点类型——浮点数实例 47
3.1.12字符类型 48
3.1.13布尔类型 51
3.2复合数据类型 52
3.2.1指针类型 53
3.2.2引用类型 58
3.2.3数组类型 60
3.2.4枚举类型 66
3.2.5结构体类型 70
3.2.6类类型 74
3.3修饰符关键字 76
3.3.1 const限定修饰符 76
3.3.2 typedef关键字 79
3.3.3 static关键字 81
3.3.4 inline修饰符 87
3.3.5 extern关键字 89
3.4本章小结 91
3.5本章习题 91
第4章 表达式 96
4.1操作符 96
4.1.1算术操作符 96
4.1.2关系操作符 97
4.1.3逻辑操作符 98
4.1.4位操作符 98
4.1.5 sizeof操作符 100
4.1.6强制类型转换 1
4.1.7操作符优先级 102
4.2表达式 103
4.2.1算术表达式 103
4.2.2逻辑表达式 103
4.2.3赋值表达式 104
4.2.4逗号表达式 104
4.3本章小结 105
4.4本章习题 105
第5章 C++语句 106
5.1简单语句 107
5.1.1表达式语句 107
5.1.2空语句 108
5.1.3返回语句 108
5.1.4复合语句 108
5.1.5声明语句 109
5.1.6赋值语句 110
5.2流程控制语句 111
5.2.1 if语句 111
5.2.2 while语句 115
5.2.3 for语句 116
5.2.4 switch语句 118
5.2.5 do…while语句 121
5.3转向语句 122
5.3.1 break语句 123
5.3.2 continue语句 124
5.3.3 goto语句 124
5.4本章小结 126
5.5本章习题 126
第6章 标准模板库STL 130
6.1 STL概述 130
6.1.1 STL算法简介 130
6.1.2 STL容器简介 130
6.1.3迭代器 131
6.1.4 STL适配器简介 131
6.2容器 132
6.2.1向量容器 132
6.2.2列表容器 133
6.3迭代器 135
6.3.1输入和输出迭代器 135
6.3.2前向迭代器、双向迭代器和随机访问迭代器 136
6.3.3插入迭代器 137
6.3.4混合迭代器函数 138
6.3.5迭代器适配器 139
6.4算法和函数对象 140
6.4.1 STL通用算法调用形式 140
6.4.2不可变序列算法 142
6.4.3可变序列算法 142
6.4.4函数对象 143
6.5本章小结 145
6.6本章习题 145
第3篇 C++面向对象编程 148
第7章类 148
7.1类的定义 148
7.1.1数据成员 148
7.1.2成员函数 149
7.1.3成员访问 151
7.1.4友元 151
7.1.5类声明和类定义 153
7.2类与对象 154
7.3类成员函数 154
7.3.1内联成员函数 155
7.3.2 const对象和const成员函数 156
7.4隐含的this指针 159
7.5静态类成员 160
7.5.1静态数据成员 160
7.5.2静态成员函数 162
7.6指向类成员的指针 163
7.6.1指向数据成员的指针 163
7.6.2指向成员函数的指针 164
7.7嵌套类 165
7.8局部类 166
7.9本章小结 167
7.10本章习题 167
第8章 类的初始化、赋值和析构 169
8.1类的初始化 169
8.2类的构造函数 170
8.2.1默认构造函数 171
8.2.2限制对象创建 175
8.2.3拷贝构造函数 176
8.2.4深拷贝和浅拷贝 179
8.2.5构造函数调用顺序 181
8.3类的析构 183
8.3.1一般析构函数 183
8.3.2虚析构函数 185
8.4本章小结 187
8.5本章习题 187
第9章 模板 190
9.1模板的概念 190
9.2函数模板与模板函数 191
9.2.1函数模板 191
9.2.2模板函数 194
9.3类模板 196
9.3.1类模板 197
9.3.2模板类 198
9.3.3类模板实例化 200
9.3.4类模板的成员函数 203
9.3.5类模板中的友元声明 205
9.4本章小结 207
9.5本章习题 207
第10章 面向对象程序设计 213
10.1什么是面向对象程序设计 213
10.1.1面向对象程序设计的优点 213
10.1.2面向对象程序设计的基本概念 216
10.2数据的抽象与封装 219
10.2.1类的抽象 219
10.2.2类的封装 220
10.3派生与继承 221
10.3.1派生类概述 221
10.3.2派生类的构造和析构 225
10.3.3基类成员在派生类中的访问权限 228
10.3.4多重继承与继承链 230
10.3.5二义性问题 234
10.4多态性 239
10.4.1多态的概念 239
10.4.2函数重载 240
10.4.3运算符重载 241
10.4.4虚函数 244
10.5本章小结 252
10.6本章习题 252
第4篇 C++编程实践 260
第11章 教学管理系统的C++实现 260
11.1项目介绍 260
11.1.1概述 260
11.1.2实例中的相关类 260
11.1.3实例程序的相关功能 261
11.2自定义类 261
11.2.1学生类 261
11.2.2教师类 262
11.2.3课程类 262
11.2.4文件管理类 263
11.2.5自定义类的继承关系 263
11.3实现自定义类 264
11.3.1新建C++头文件和实现文件 264
11.3.2实现类功能 267
11.4使用自定义类 276
11.4.1复制自定义类文件到工程目录下 276
11.4.2包含类的头文件 277
11.4.3创建类实例对象 278
11.4.4调用对象成员完成相应功能 278
11.5制作个性化系统界面 279
11.5.1 Visual C++控件介绍 279
11.5.2制作个性化的系统界面 280
11.6在控件消息响应函数中使用自定义类功能 283
11.6.1为控件添加消息响应函数 284
11.6.2为界面中的控件关联变量名 284
11.6.3在消息响应函数中调用类成员 285
11.7使用文件保存数据 289
11.7.1创建文件实例对象 289
11.7.2打开文件 290
11.7.3格式化读取文件 291
11.7.4格式化写入文件 292
11.7.5关闭文件 292
11.7.6实例程序 293
11.8本章小结 298
附录A Visual C++菜单中文注释 299
附录B Visual C++操作技巧小代码 302