条款31:将文件间的编译依存关系降至最低
来源:互联网 发布:淘宝客服这个工作好吗 编辑:程序博客网 时间:2024/05/16 08:03
结论1:支持“编译依存性最小化"的一般构想是:相依于声明式,不要相依于定义式。基于此构想的两个手段是Handle classes 和 Interface classes。
编译依存性最小化的本质:现实中让头文件尽可能自我满足,万一做不到,则让它与其他文件内的声明式(而非定义式)相依,这源自于以下这个简单的设计策略:
1、如果使用object references 或 object pointers 可以完成任务,就不要使用objects。
2、如果能够,尽量以class 声明式替换class 定义式。
3、为声明式和定义式提供不同的头文件。
使用pimpl idiom(pointer to implementation)的classes,被称为Handle classes。
Interface classes即abstract base class,这种class的目的是详细一一描述derived classes的接口,通常不带成员变量,也没有构造函数,只有一个virtual析构函数以及一组pure virtual函数,用来叙述整个接口。为了Interface class的客户可以创建class新对象,通常调用一个特殊函数,此函数扮演”真正将被具现化“的那个derived classes的构造函数角色,这样的函数通常被称为factory函数或virtual构造函数,它们返回指针,指向动态分配所得对象,而该对象支持Interface class的接口,这样的函数往往在Interface class内被声明为static。
结论2:程序库头文件应该以”完全且仅有声明式“的形式存在。这种做法不论是否涉及templates都适用。
- 条款31:将文件间的编译依存关系降至最低
- 条款31:将文件间的编译依存关系降至最低
- 条款31:将文件间的编译依存关系降至最低
- 条款31:将文件间的编译依存关系降至最低
- 条款31:将文件间的编译依存关系降至最低
- 条款31将文件间的编译依存关系降至最低
- 《Effective C++》学习笔记条款31:将文件间的编译依存关系降至最低
- 条款31:将文件间的编译依存关系降至最低
- 《Effective C++》:条款31:将文件间的编译依存关系降至最低
- Effective C++笔记_条款31将文件间的编译依存关系降至最低
- 读书笔记《Effective C++》条款31:将文件间的编译依存关系降至最低
- 读书笔记_Effective_C++_条款三十一:将文件间的编译依存关系降至最低
- item31: 将文件间的编译依存关系降至最低
- 将文件间的编译依存关系降至最低
- 将文件间的编译依存关系降至最低
- Effectiv C++条款31 将文件间的编译依存关系降至最低 Handle Class和Interface Class完整实现
- Effectiv C++条款31 将文件间的编译依存关系降至最低 Handle Class和Interface Class完整实现
- Effectiv C++条款31 将文件间的编译依存关系降至最低 Handle Class和Interface Class完整实现
- 产品经理业务流程图的绘制流程分享
- 二项分布和多项分布
- 数据结构上机实验之二分查找(SDUT 2039)
- this 关键字的使用
- Apache-DBUtils包对数据库的操作
- 条款31:将文件间的编译依存关系降至最低
- this 关键字的使用
- 黑马程序员——Map
- gcc常用选项
- 为SQL 2005中的InterLib添加数据源
- Linux下C编程:gcc和Makefile体验
- 黑马程序员-Java中getResourceAsStream的用法
- Python中MySQLdb模块的安装
- 常见面试之机器学习算法思想简单梳理