本书以帮助读者掌握C++面向对象高效编程方法为目的,详细介绍了C++编程中的各种概念和应用技巧。全书共分为两部分,第一部分介绍了面向对象编程的基础和应用,如数据抽象,继承,异常处理等内容;第二部分说明了如何建立抽象的概念及其策略,并研究了C++对象模型。书中带有大量的代码实例,使读者不仅能够从理论上得以提高,而且还能够轻松地在实践中应用。\r\n 本书适用于C++程序员,也可供面向对象程序设计感兴趣的编程人员及大专院校计算机专业师生参考。 \r\n
第一部分 概念,实践和应用\r\n\r\n第一章 什么是面向对象编程\r\n\r\n1.1 背景\r\n1.2 理解对象模型\r\n1.3 术语\r\n1.4 理解消息,方法和实例变量\r\n1.5 什么可以作为类\r\n1.6 什么不是类\r\n1.7 深入了解对象\r\n1.8 类的目的\r\n1.9 面向对象软件开发的阶段\r\n1.10 面向对象编程(OOP)\r\n1.11 对象模型的关键元素\r\n1.12 面向对象编程语言的要求\r\n1.13 OOP范例和语言\r\n1.14 对象模型的优点\r\n1.15 小结\r\n\r\n第二章 什么是数据抽象\r\n\r\n2.1 接口和实现的分离\r\n2.2 对象接口的重要性\r\n2.3 实现的含义\r\n2.4 保护实现\r\n2.5 数据封装的优点\r\n2.6 接口,实现和数据封装之间的关系\r\n2.7 数据封装注意事项\r\n2.8 抽象数据类型\r\n2.9 抽象数据类型\r\n2.10 抽象数据类型——堆栈的实现\r\n2.11 C++中的数据抽象\r\n2.12 访问类中的区域\r\n2.13 和类一起使用的术语\r\n2.14 类的实现者\r\n2.15 实现成员函数\r\n2.16 确定成员函数的目标对象\r\n2.17 程序示例\r\n2.18 对象是重点\r\n2.19 对接口的再认识\r\n2.20 什么是多线程安全类\r\n2.21 确保抽象的可靠性——类常量和断言\r\n2.22 表示OO设计的符号\r\n2.23 BOOCH符号\r\n2.24 类关系\r\n2.25 统一建模语言\r\n2.26 统一建模中的类关系\r\n2.27 关联\r\n2.28 组合\r\n2.29 生成关系\r\n2.30 “有一个”关系的重要性\r\n2.31 小结\r\n\r\n第三章 C++与数据抽象\r\n\r\n3.1 类概念基础\r\n3.2 类元素细节\r\n3.3 复制构造函数\r\n3.4 赋值运算符\r\n3.5 THIS指针和名称修正的进一步说明\r\n3.6 CONST成员函数的概念\r\n3.7 编译器实现CONST成员函数的方式\r\n3.8 C++中类和结构的区别\r\n3.9 类可以包含什么\r\n3.10 设计期间的重点——类的接口\r\n3.11 类名,成员函数名,参数类型和文档\r\n3.12 参数传递模式——客户的视图\r\n3.13 采用语义\r\n3.14 为参数选择正确的模式\r\n3.15 函数返回值\r\n3.16 从函数中返回\r\n3.17 编写内存安全类\r\n3.18 客户对类和函数的责任\r\n3.19 小结\r\n\r\n第四章 OOP中的初始化和无用单元搜集\r\n\r\n4.1 什么是初始化\r\n4.2 无用单元收集问题\r\n4.3 C++中的无用单元收集\r\n4.4 对象标识\r\n4.5 对象复制的语义\r\n4.6 对象赋值的语义\r\n4.7 对象相等的语义\r\n4.8 为什么需要副本控制\r\n4.9 分析\r\n4.10 “写时复制”的概念\r\n4.11 类和类型\r\n4.12 小结\r\n\r\n第五章 继承的概念\r\n\r\n5.1 继承的基本知识\r\n5.2 “是一个”关系的含义\r\n5.3 继承关系的效果\r\n5.4 多态置换原则\r\n5.5 用继承扩展类层次\r\n5.6 继承的一些基本优点\r\n5.7 动态绑定,虚函数和多态性\r\n5.8 继承对数据库封装的影响\r\n5.9 多态的含义\r\n5.10 高效使用虚函数\r\n5.11 虚析构函数的要求\r\n5.12 析造函数和虚函数\r\n5.13 一般一特殊概念\r\n5.14 抽象类概念\r\n5.15 抽象类的用途\r\n5.16 继承的威力\r\n5.17 有效的代码重用\r\n5.18 抽象基类的客户\r\n5.19 继承优点小结\r\n5.20 继承和动态绑定的危险\r\n5.21 不必要的继承和动态绑定\r\n5.22 使用虚函数的不同模式\r\n5.23 小结\r\n\r\n第六章 多重继承概念\r\n\r\n6.1 多重继承的简单定义\r\n6.2 大学例子\r\n6.3 多重继承关系的含义\r\n6.4 MI情况\r\n6.5 C++中解决名称冲突\r\n6.6 多重继承的基本优点\r\n6.7 重复继承\r\n6.8 重复继承的解决方案\r\n6.9 继承的一般问题\r\n6.10 使用MIXIN类加入静态功能\r\n6.11 动态变化情况的设计\r\n6.12 C++的私有派生\r\n6.13 MIXIN类和私有派生的实用示例\r\n6.14 继承和包含\r\n6.15 小结\r\n\r\n第七章 从类中选择性导出\r\n\r\n7.1 需要什么\r\n7.2 C++的情况\r\n7.3 友元关系的含义\r\n7.4 非成员函数和友元函数的应用\r\n7.5 非成员函数的优点\r\n7.6 选择友元函数还是成员函数\r\n7.7 小结\r\n\r\n第八章 运算符重载的概念\r\n\r\n8.1 语言类型和程序员定义类型的差别\r\n8.2 什么是重载运算符\r\n8.3 为什么需要运算符重载——优缺点\r\n8.4 C++中的重载运算符\r\n8.5 ++和一运算符的另一个应用\r\n8.6 更复杂的运算符——成员访问运算符:->\r\n8.7 非成员函数的运算符\r\n8.8 转换函数\r\n8.9 从运算符函数返回结果\r\n8.10 赋值运算符\r\n8.11 小结\r\n\r\n第九章 通用类型\r\n\r\n9.1 重复性编码问题\r\n9.2 聪明的解决方案——通用编码\r\n9.3 通用类型基础\r\n9.4 通用类型和代码复制\r\n9.5 通用类型实现者和客户之间的协议\r\n9.6 模板特殊化\r\n9.7 模板类特殊化\r\n9.8 通用函数变化\r\n9.9 C++中模板类和成员函数的实例化\r\n9.10 通用类型和类型检查\r\n9.11 限制和无限制通用性\r\n9.12 C++模板参数的限制\r\n9.13 通用类和选择性导出\r\n9.14 继承和通用类\r\n9.15 通用类继承的用途\r\n9.16 控制对象创建的通用技术\r\n9.17 用模板对象尽量减少代码复制\r\n9.18 模板类和源代码保护\r\n9.19 实现记数指针\r\n9.20 共享库中的模板类\r\n9.21 通用类和继承的比较\r\n9.22 小结\r\n\r\n第十章 处理异常情况\r\n\r\n10.1 处理错误情况的原因\r\n10.2 什么是替换方法\r\n10.3 C++异常处理模型\r\n10.4 EIFEEL中的异常模型\r\n10.5 EIFEEL和C++异常模型的优缺点\r\n10.6 高效使用C++异常\r\n10.7 创建异常层次结构\r\n10.8 在工程中设计异常处理\r\n10.9 工程中成功的错误管理策略\r\n10.10 异常环境中的资源管理\r\n10.11 异常和构造函数\r\n10.12 构造函数的部分完成\r\n10.13 用异常创建安全的数组\r\n10.14 小结\r\n\r\n第二部分 建立强大的面向对象软件\r\n\r\n第十一章 掌握数据抽象\r\n\r\n11.1 隐藏抽象的实现细节\r\n11.2 作为数据成员使用指针\r\n11.3 控制对象的创建\r\n11.4 使用指针和引用代替嵌入对象\r\n11.5 避免用大型数组作为自动变量\r\n11.6 使用对象数组和对象指针数组\r\n11.7 对于数据成员和成员函数的返回值,首选对象,而不是简单类型的指针\r\n11.8 与C的兼容性\r\n11.9 注意实现的选择:对象大小和代码效率\r\n11.10 避免临时对象\r\n11.11 使用复制构造函数初始化对象\r\n11.12 有效使用代理对象\r\n11.13 使用简单的抽象建立更复杂的抽象\r\n11.14 抽象必须允许客户用各种不同的方式使用类\r\n11.15 小结\r\n\r\n第十二章 高效使用继承\r\n\r\n12.1 用继承实现优秀的菜单和命令\r\n12.2 封装对象创建细节\r\n12.3 虚拟构造函数的概念\r\n12.4 为协议控制而组合使用虚函数和非虚函数\r\n12.5 双重调度概念\r\n12.6 设计处理不同的容器\r\n12.7 设计和实现容器类\r\n12.8 用通用性编程实现同类容器类\r\n12.9 基于模板的容器的缺点\r\n12.10 导航容器\r\n12.11 主动迭代器\r\n12.12 管理集合和迭代器——客户的角度\r\n12.13 C++标准模板库\r\n12.14 小结\r\n12.15 TArray容器的实现代码\r\n\r\n第十三章 理解C++对象模型\r\n\r\n13.1 高效实现\r\n13.2 C++表示对象的方式\r\n13.3 包含虚函数的类\r\n13.4 在共享库之间共享虚函数表\r\n13.5 虚函数和多重继承\r\n13.6 虚拟基类\r\n13.7 RTTI的实现支持\r\n13.8 基于对象和面向对象编程\r\n13.9 引用,指针和值\r\n13.10 复制构造函数的责任\r\n13.11 对象的按值传递和按值返回的优化\r\n13.12 运行时初始化\r\n13.13 小结