出版说明
前言
第1章c++基础
1.1c++概述
1.1.1程序
1.1.2预处理指令
1.1.3输入与输出
1.1.4c++编程思想
1.1.5基于对象的程序设计
1.1.6面向对象的程序设计
1.2控制语句
1.2.1分支
1.2.2循环
1.2.3跳转
1.3数据类型
1.3.1基本数据类型
1.3.2文字量
1.3.3枚举
1.3.4结构体
1.3.5共用体
1.4指针和数组
1.4.1内存开辟
1.4.2void指针
1.4.3空指针
1.4.4多级指针
1.4.5指针数组
1.4.6数组指针
1.5函数
1.5.1传值与传引用
1.5.2传指针与传数组
1.5.3默认和可变参数
1.5.4返回值
1.5.5函数和指针
1.6思考与练习
第2章认识类
2.1类的来源
2.2类有哪些成员
2.3类可以出现的位置
2.4类的极限形式
2.5类和结构体的区别
2.6类型的演进
2.7类的路线图
2.8思考与练习
第3章认识类的思想
3.1类的封装性
3.2类的继承性
3.3类的多态性
3.3.1编译时多态性
3.3.2运行时多态性
3.4思考与练习
第4章对象
4.1构造函数
4.1.1重载构造函数
4.1.2默认构造函数
4.1.3复制构造函数
4.1.4转化构造函数
4.1.5显式构造函数
4.1.6区分构造形式
4.2析构函数
4.3静态成员
4.3.1静态成员函数
4.3.2静态数据成员
4.4常量成员
4.4.1常量成员函数
4.4.2常量数据成员
4.4.3常量和非常量的区别
4.5静态与常量成员
4.6内联函数和友元函数
4.6.1内联函数
4.6.2友元函数与友元类
4.7对象数组
4.8创建特殊对象
4.9思考与练习
第5章运算符重载
5.1可重载的运算符
5.2重载的原则
5.3定义新运算符
5.4运算符的原有语义
5.5对象或全局函数
5.6运算符的参数
5.7独立和复合运算符
5.8赋值运算符不参与继承
5.9重载运算符的限定
5.10改变运算符的可见性
5.11相等
5.12赋值
5.13下标
5.14函数调用
5.15类型转化
5.16增量和减量
5.17分配和释放
5.18思考与练习
第6章完整的string类
6.1引言
6.2确定目标
6.3设计接口
6.4定义接口
6.5字符串的创建
6.6字符串的销毁
6.7字符串与字符数组
6.8安全数据
6.9赋值、下标和其他
6.10算法
6.11提取
6.12大小和容量
6.13比较
6.14输入和输出
6.15异常处理
6.16简单的应用
6.17思考与练习
第7章继承
7.1可能的继承方式
7.2看待各种继承
7.3类和结构体彼此继承
7.4认识虚拟继承
7.5使用空类型
7.6“共同”的使用
7.7继承中的构造和析构
7.7.1构造函数的调用顺序
7.7.2析构函数的调用顺序
7.7.3虚拟继承对象的构造
7.8思考与练习
第8章内存布局
8.1要解决的问题
8.2内存有哪些成员
8.3各种内存布局
8.3.1独立类型
8.3.2单继承
8.3.3多继承
8.3.4有共同基类的继承
8.3.5虚拟继承
8.3.6虚函数表指针的存储
8.4基类的连续性
8.5空类的大小
8.6内存的膨胀
8.7思考与练习
第9章类型转化
9.1对象类型向上转化
9.1.1单继承与多继承
9.1.2有共同基类的继承
9.2对象类型向下转化
9.2.1单继承
9.2.2多继承
9.2.3有共同基类的继承
9.3指针类型转化
9.4指针类型向上转化
9.4.1单继承与多继承
9.4.2有共同基类的继承
9.5指针类型向下转化
9.5.1单继承
9.5.2多继承
9.5.3有共同基类的继承
9.6思考与练习
第10章虚拟机制
10.1虚函数的声明
10.2虚函数的调用
10.3抽象类
10.3.1抽象类的数据成员
10.3.2抽象类的局部派生
10.3.3抽象类作为派生类
10.4虚析构函数
10.5虚函数与虚拟继承
10.6虚函数表指针与类型
10.7虚函数表项未必相同
10.8思考与练习
第11章完整的minidataset类
层次结构
11.1引言
11.2确定目标
11.3继承与组合
11.4继承类型和数据封装
11.5层次结构图
11.6定义接口
11.7实现接口
11.7.1basedata接口
11.7.2keydata接口
11.7.3valuedata接口
11.7.4dicele接口
11.7.5dictionary接口
11.7.6nameddic接口
11.7.7nameddicset接口
11.7.8miniheader接口
11.7.9minitable接口
11.8包容性扩展
11.9简单的应用
11.10思考与练习
第12章综合设计与实现
12.1逐步求精类型的设计
12.1.1设计需求
12.1.2基本表示
12.1.3存储结构化
12.1.4改善内部表示
12.1.5拓展类型的能力
12.1.6设计总结
12.2受限制类型的设计
12.2.1设计需求
12.2.2限制函数的返回
12.2.3限制函数的参数
12.2.4设计总结
12.3扩展容器类型的设计
12.3.1设计需求
12.3.2一对多的映射
12.3.3多对多的映射
12.3.4设计总结
12.4函数组类型的设计
12.4.1设计需求
12.4.2构造式设计
12.4.3运算符式设计
12.4.4设计总结
12.5跳跃数组类型的设计
12.5.1设计需求
12.5.2元素类型的设计
12.5.3包含类型的实现
12.5.4扩展包含类型的接口
12.5.5增强包含类型的存储
12.5.6设计总结
12.6可替换类型的设计
12.6.1设计需求
12.6.2替换分隔式数组
12.6.3替换仅含数据的结构体
12.6.4替换类对象数组
12.6.5替换函数指针数组
12.6.6设计总结
12.7统一输入输出类型的设计
12.7.1设计需求
12.7.2输出的原子动作
12.7.3统一的文件输出
12.7.4统一的网络输出
12.7.5统一的数据输出
12.7.6设计总结
12.8思考与练习
附录常用英文术语
参考文