第1章 绪论 1
1.1 程序设计语言 1
1.2 C++的发展历史 4
1.3 面向过程程序设计语言 5
1.4 面向对象程序设计语言 7
1.5 类与抽象数据类型 10
1.6 继承与多态 10
1.7 接口与组件 11
习题 12
第2章 从C到C++ 13
2.1 自定义数据类型 13
2.1.1 结构体 13
2.1.2 共用体 28
2.1.3 位域 33
2.1.4 枚举 39
2.1.5 typedef声明类型 42
2.2 函数 46
2.2.1 引用 46
2.2.2 参数传递方式 52
2.2.3 函数的重载 57
2.2.4 有默认参数的函数 60
2.2.5 内联函数 61
2.2.6 函数调用栈结构 65
2.2.7 函数返回值 69
2.2.8 函数指针和指针函数 78
2.2.9 const修饰符 88
2.3 函数和结构体 97
2.3.1 有函数的结构体 97
2.3.2 若干实例 102
习题 112
第3章 C++语言初步 114
3.1 一个简单的C++程序 114
3.2 名字空间 115
3.2.1 名字空间的定义 117
3.2.2 域操作符:: 118
3.2.3 无名的名字空间 120
3.2.4 名字空间的别名 121
3.2.5 组合和选择 122
3.2.6 名字空间和重载 123
3.2.7 名字查找 124
3.2.8 名字空间是开放的 125
3.3 输入和输出 125
3.3.1 cout输出 126
3.3.2 cin输入 130
3.4 string类型 133
3.5 new和delete 140
3.6 异常处理 146
习题 153
第4章 类和对象 156
4.1 一个典型例子 156
4.2 类介绍 162
4.3 示例:Stack类 173
4.4 构造函数与析构函数 176
4.4.1 构造函数 176
4.4.2 复制构造函数 182
4.4.3 构造函数的初始化列表 189
4.4.4 析构函数 192
4.4.5 构造/析构函数的显示调用 200
4.5 类的静态成员 203
4.6 this指针 211
4.7 指向类成员的指针 220
4.8 成员对象和封闭类 224
4.9 常成员和常对象 230
4.10 引用成员 236
4.11 友元 241
4.12 局部类和嵌套类 246
4.13 C语言实现类的封装 253
习题 256
第5章 继承和派生 260
5.1 介绍 260
5.2 基本概念与语法 264
5.3 派生类成员的访问属性 268
5.3.1 公有继承 269
5.3.2 私有继承 274
5.3.3 保护继承 279
5.3.4 基类static成员的继承 281
5.3.5 派生类的using声明 284
5.4 派生类构造函数和析构函数 287
5.4.1 派生类构造函数 287
5.4.2 派生类析构函数 294
5.4.3 派生类复制构造函数 295
5.4.4 派生类和成员对象 297
5.5 多重继承 299
5.6 继承和组合 310
5.7 重载、隐藏和覆盖 318
5.8 C语言实现继承 323
习题 325
第6章 多态性 330
6.1 多态的形式 330
6.1.1 静态多态 330
6.1.2 动态多态 333
6.2 虚函数定义 334
6.3 虚函数和多态 341
6.3.1 虚函数多态的形式 341
6.3.2 动态联编 345
6.3.3 多态的实现 347
6.3.4 构造函数中调用virtual函数 352
6.3.5 普通成员函数中调用虚函数 355
6.3.6 私有虚函数 356
6.3.7 虚析构函数 362
6.3.8 有默认参数的虚函数 363
6.3.9 虚函数和友元 364
6.4 纯虚函数和抽象类 369
6.4.1 纯虚函数定义 369
6.4.2 继承的局限 373
6.4.3 接口的继承和实现继承 375
6.5 多态增强程序可扩充性的例子 378
6.6 dynamic_cast和static_cast 389
6.7 多重继承和虚函数 396
6.8 C语言实现多态 400
习题 405
第7章 运算符重载 407
7.1 运算符重载的定义 407
7.2 常用运算符的重载 412
7.2.1 下标运算符的重载 412
7.2.2 输入输出运算符重载 414
7.2.3 赋值运算符重载 416
7.2.4 关系运算符重载 420
7.2.5 new和delete运算符重载 423
7.2.6 解除引用运算符重载 426
7.2.7 函数运算符重载 429
7.3 运算符重载的注意事项 438
习题 442
第8章 面向接口编程 444
8.1 接口与实现分离 444
8.2 代理模式 448
8.3 桥接模式 453
8.4 适配器模式 461
8.5 组合模式 467
8.6 观察者模式 470
习题 478
第9章 模板 480
9.1 函数模板 480
9.2 类模板 490
9.3 类模板实例:队列 510
9.4 模板的特化 512
9.5 模板和宏 521
习题 524
附录A UML类图 526
参考文献 532