我已阅读了有用的文章"When to use forward declaration?"。
然而,我留下了一个问题。在这种情况下,我可以在标题中使用前向声明,但不在cpp中是否有好处,它是什么?
答案 0 :(得分:2)
好处是减少了对头文件的依赖性。无论何时执行#include
,预处理器基本上都会将该文件添加到标头中进行编译,这称为依赖项,因为标头需要它。因此,在大型项目中,只要包含的文件发生更改,头文件,其cpp文件以及包含它的所有内容也需要重新编译。减少依赖关系通常有助于减少大型项目的编译时间。
此外,有时需要打破循环依赖关系,这通常可以在相当大的项目中找到,例如,文件A包括文件B,其再次包括文件A.所以这是前瞻性声明的额外好处。