将文件间的编译依存关系降至最低【EC++笔记】

  • 当 object references(引用)和 pointers(指针)可以做到时就避免直接使用实例对象。仅需一个类型的声明,你就可以定义到这个类型的 references 和 pointers。而定义一个类型的实例对象必须要存在这个类型的定义。
  • 只要你能做到,就用对 class declarations(类声明)的依赖替代对 class definitions(类定义)的依赖。注意在你声明一个使用一个 class 的函数时绝对不需要有这个 class definition,即使这个函数通过传值方式传递或返回这个 class
  • 为 declarations(声明)【专门声明是为了快速编译】和 definitions(定义)【为了能够实现功能】分别提供头文件。为了便于坚持上面的指导方针,头文件需要成对出现:一个用于 declarations(声明),另一个用于 definitions(定义)。当然,这些文件必须保持一致。如果一个 declaration(声明)在一个地方被改变了,它必须在两处都被改变。

Things to Remember

  • 最小化编译依赖后面的一般想法是用对 declarations(声明)的依赖取代对 definitions(定义)的依赖。基于此想法的两个方法是 Handle classes【声明】  Interface classes【虚函数】。
  • 库头文件应该以完整并且 declaration-only(只有声明)的形式存在。无论是否包含 templates(模板)都适用于这一点。
原文地址:https://www.cnblogs.com/guyan/p/2502325.html