【发布时间】:2009-04-09 16:23:04
【问题描述】:
关于库中的标题,我看到了两个选项,我不确定这个选项是否真的很重要。假设我创建了一个库,我们称之为foobar。请帮我选择最合适的选项:
-
在库项目的最根目录中包含一个,我们称之为
foobar.h,它包含库中的所有头文件,例如“src/some_namespace/SomeClass.h”等。然后从库外部,在我想使用与foobar库有关的任何文件中,只需#include <foobar.h>。 -
没有主要包含,而是仅在我要使用它们的地方包含我们需要的标题,因此我可能在源文件中有一大堆包含。由于我使用的命名空间有时深达 3,因此包括标题似乎有点麻烦。
我选择了选项 1,因为它很容易实施。 OpenGL 和许多其他库似乎都这样做了,所以这似乎是明智的。但是,标准 C++ 库可以要求我在任何给定文件中包含多个头文件,为什么他们不只有一个头文件?除非是我和白痴,而且它们是独立的库......
更新:
进一步回答,我认为提供这两个选项是有意义的,对吗?如果我想使用 std::string 但必须包含大量头文件,我会非常恼火;那太傻了。另一方面,当我想使用大部分库时,如果我不得不输入大量 #include 行,我会很生气。
转发标题:
感谢所有建议我前锋头球的人,这帮助我减少了头球丛林的复杂性! :)
【问题讨论】: