首页 > 解决方案 > 如何避免包含文件由于模板类而传播

问题描述

由于在头文件中实现了模板类,因此我必须在头文件中包含用于实现该类的其他包含。

因此,每次我包含我的模板类时,都会带来所有其他的包含等等。

这可能会导致包容性的过度传播,甚至对于上下文而言是不必要的。

那么处理这个问题的最佳方法是什么?

编辑:因为我没有明确提到它,所以我不是在谈论前向声明可以像在正常的 .h/.cpp 分离中那样解决它的情况,但是当你必须包含标题时,因为你没有有cpp,你必须在.h中使用它

编辑 2:假设我的模板类有一个函数,该函数依赖于第三个类库。现在,使用我的模板类的每个类都具有相同的依赖关系,或者可以访问我都不想访问的那个标题。是否存在避免这种情况的方法?

标签: c++header-filestemplate-classes

解决方案


在适当的地方使用前向声明而不是#include。头文件应该只包含需要的部分,其余部分应该放在源文件中。


推荐阅读