这是使用远期声明的情况吗?
Is this a case to use a forward declare?
我已经阅读了有用的文章"何时使用远期声明?"。
但是,我有一个问题。在这种情况下,我可以在标题中使用远期声明,但是在CPP中不能有好处,这是什么?
益处是降低对标题文件的依赖关系。每当您执行#include
时,预处理器基本上都会将该文件添加到标题中以进行编译,这称为依赖关系,因为您的标题需要它。因此,在大型项目中,只要随附的文件更改,标题文件,其CPP文件以及包含在内的所有内容也需要重新编译。减少依赖关系通常可以帮助减少大型项目中的编译时间。
此外,有时需要打破循环依赖项的要求,这通常可以在相当的项目中找到,例如,文件a包含文件b,该文件再次包含文件a。因此,这是远期声明的额外好处。
相关文章:
- 模板方法访问正向声明的类仅在没有此指针的情况下无法编译
- 在没有标识符的情况下如何读取复杂的C++类型声明?
- 如何在不为其声明变量的情况下获取和使用常量值的地址?
- 为什么在这种情况下,前向声明不起作用?
- 如何在不混淆字段的情况下声明复数?
- 我们可以在没有新实例化的情况下声明一个抽象方法来返回抽象超类中的子类对象吗
- 在C++我可以在不在本地声明结构的情况下将结构作为指针传递吗?
- C++:如何在不定义的情况下声明非函数?
- 我需要在不使用前向声明的情况下相互包含两个头文件,导致"incomplete type"错误
- 在不使用默认构造函数的情况下声明 POD 结构时,会实例化什么?
- 有什么理由在没有继承的情况下声明一个虚拟方法
- 如何在不初始化常量的情况下声明数组?
- 如何在不包含 Windows.h 的情况下获取 IsDebuggerPresent 的声明
- 如何在不指定 C++ 中的所有参数的情况下声明程序的 main() 入口点
- 如何在不指定模板类型的情况下声明通用抽象类的对象
- 在C++中,如何在没有新元素且不单独声明单个元素的情况下创建"std::initializer_list<base *>"?
- 有没有办法在不引用其模板类型的情况下转发声明指向类的指针
- 在声明纯虚函数的父类的实例上调用纯虚函数时会发生什么情况
- 如何在不依赖#Define的情况下转发声明数组大小
- 当声明了虚拟析构函数但没有实现时会发生什么情况