目 录 1
第1章C++概述 1
1.1 C++的起源 1
1.2 C++的学习方法 1
1.3本书内容的组织 3
第2章你好,Visual C++ 5
2.1 Visual C++软件包的组成 5
2.2 启动Visual C++的工作平台 5
2.3 Visual C++的工作平台 6
2.3.1 File菜单 7
2.3.2 Edit菜单 12
2.3.3 View菜单 18
2.3.4 Project菜单 23
2.3.5 Browse菜单 30
2.3.6 Debug菜单 32
2.3.7 Tools菜单 39
2.3.8 ()ptions菜单 40
2.3.9 Window菜单 48
2.3.10 Help菜单 53
2.4工具栏 55
2.5 使用Visual C++的联机帮助 57
2.5.1通过目录窗口逐步获取帮助 57
2.5.2通过Search对话框搜索帮助主题 65
2.5.3 使用目录窗口中的Search按钮 66
2.5.4获得某个菜单命令的帮助信息 68
2.5.5通过插入点获取帮助 68
2.5.6使用对话框中的Help按钮 70
2.5.7获得出错信息的帮助 70
第3章构造QuickWin应用程序 71
3.1 项目的概念 71
3.2构造一个QuickWin应用程序 71
3.2.1 创建项目hello.mak 72
3.2.2编辑源文件 74
3.2.3编译和链接 76
3.2.5调试程序 78
3.2.4运行程序 78
3.3分析hello程序 79
3.4输入输出简介 80
第4章 向Visual C++过渡 84
4.1 注释 84
4.2Visual C++的标准数据类型 84
4.3字符常量 85
4.4数据说明的位置 86
4.5强制类型转换 87
4.6 const 87
4.7.1 const与指针 89
4.7对const的进一步说明 89
4.7.2全局的const变量 90
4.8 volatile 91
4.9 void 92
4.9.1在函数中使用void 92
4.9.2 void类型的指针 93
4.10函数原型 93
4.11缺省的函数参数 95
4.12 struct 96
4.13 union 97
4.14枚举enum 98
4.15.1引用的基本概念 99
4.15 引用 99
4.15.2引用参数 100
4.15.3返回引用 102
4.15.4引用与const 103
4.16∷ 104
4.17 new和delete 106
4.17.1 用户自定义的new和delete 108
4.17.2捕获内存分配错误 108
4.18 inline 109
4.19函数重载 111
4.20名字分裂和类型的安全链接 115
5.1类的说明 118
第5章类 118
5.2类的实现 121
5.3对象 122
5.4private和public 124
5.5构造函数和析构函数 124
5.5.1构造函数 125
5.5.2重载构造函数 126
5.5.3缺省构造函数 128
5.5.4析构函数 130
5.5.5调用构造函数和析构函数的时机 131
5.6内联成员函数 132
5.7this指针 133
5.8结构与类 136
5.9联合与类 137
5.10编程风格 139
5.11举例 143
第6章对象、指针和数组 160
6.1 对象赋值 160
6.2缺省拷贝构造函数 161
6.3 用户自定义的拷贝构造函数 162
6.4对象的初始化 164
6.5 对象初始化和对象赋值的区别 166
6.6.1 以传值方式传递对象 167
6.6在函数中使用对象 167
6.6.2以传地址方式传递对象 169
6.6.3以传引用方式传递对象 171
6.6.4从函数返回对象 172
6.7 对象数组 173
6.7.1 对象数组的概念 173
6.7.2初始化对象数组 174
6.7.3对象数组和缺省构造函数 175
6.7.4对象数组和new,delete 177
6.8 对象指针 178
6.9举例 180
7.1.1 const数据成员 192
第7章对类的进一步讨论 192
7.1 const 成员 192
7.1.2const成员函数 196
7.2静态成员 199
7.2.1静态数据成员 200
7.2.2静态成员函数 204
7.3友元 206
7.3.1友元函数 206
7.3.2友元类 211
7.4类型转换函数 212
7.5对象成员 213
7.6举例 215
第8章继承和派生类 227
8.1继承的基本概念 227
8.2单一继承和多重继承 229
8.3公有派生和私有派生 230
8.3.1 公有派生 230
8.3.2私有派生 232
8.4在派生类的成员函数中访问基类成员 233
8.5 protected 235
8.6访问权限的继承 236
8.7保护派生 237
8.8公有派生的性质 237
8.9初始化与构造函数 239
8.10成员覆盖 245
8.11类的友元没有继承性 248
8.12多重继承 248
8.12.1 多重继承的概念 248
8.12.2输入/输出流库 249
8.12.3虚基类 250
8.13举例 251
第9章虚函数 262
9.1虚函数的概念 262
9.2虚函数的特性 265
9.4覆盖函数与虚函数 270
9.3继承虚函数 270
9.5.1 不可逆性 271
9.5对虚函数的进一步说明 271
9.5.2显式访问 272
9.5.3纯虚函数和抽象类 273
9.5.4虚析构函数 273
9.6举例 276
第10章运算符重载 285
10.1运算符 285
10.2运算符重载的概念 287
10.3成员运算符函数和友元运算符函数 291
10.4.1 使用成员运算符函数 296
10.4重载双目运算符 296
10.4.2使用友元运算符函数 306
10.5重载单目运算符 307
10.5.1 使用成员运算符函数 307
10.5.2使用友元运算符函数 309
10.6成员运算符函数和友元运算符函数的比较 309
10.7特殊运算符的重载 310
10.7.1重载= 310
10.7.2重载++和-- 310
10.7.3重载[ ] 314
10.7.4重载( ) 316
10.7.5类型转换 317
10.7.6重载→ 319
10.7.7重载new和delete 320
第11章流 323
11.1流的基本概念 323
11.2流库的基本结构 323
11.3预定义的流 324
11.4预定义的提取和插入操作 324
11.4.1 预定义的插入类型 325
11.4.2预定义的提取类型 326
11.5格式化的输入/输出 327
11.5.1格式标志 327
11.5.2 setf() 329
11.5.3 unsetf() 333
11.5.4 flags() 333
11.5.5 width(),precision()和fill 335
11.5.6小结 336
11.6操纵算子 337
11.6.1预定义的操纵算子 337
11.6.2 自定义的操纵算子 341
11.7重载〈〈和〉〉 342
11.7.1重载插入符 342
11.7.2重载提取符 344
11.8 文件的输入和输出 347