如果我需要在标题中包含另一个标题,并且我计划在我的 CPP 文件中使用它,那么为了可读性,我是否也应该将其包含在那里
If I need to include another header in my header and I plan to use it in my CPP file, should I include it there as well for readability?
对,所以我会尽力解释我的问题。基本上在我的一个头文件中,我需要使用一个类,显然要做到这一点,我必须在当前文件中包含该类的标头。我只是在想,既然我计划稍后创建此类的新实例,我是否也应该将其包含在.cpp文件中以帮助提高可读性?我知道我不必这样做,但这样做有意义吗?还是我只是疯了?
示例 A,头文件:
include "APIManager.h"
class Environment
{
public:
static void Initialize();
private:
APIManager apiManager;
};
示例 A,源文件:
include "Environment.h"
// Should I include "APIManager.h" here too?
void Environment::Initialize()
{
}
尝试在这里寻找它,但我不确定如何措辞,所以如果已经问过这个问题,请道歉。
另外,通常是否应该在该类的标头中包含类的源所需的头文件?谢谢。
如果源文件是 Environment.cpp,您正在实现您在 Environment.h 中声明的内容,那么不,您不应该重新包含它。
另一方面,如果源文件是 SomeOtherFile.cpp您只是使用 Environment.h 中的声明,并且您将单独使用 APIManager.h 中的声明,并且独立于它们作为 Environment.h 的一部分的使用,那么是的,您应该这样做。您不希望将来的更改会从 SomeOtherFile 中删除#include <Environment.h>
.cpp意外中断它。
换句话说,如果 SomeOtherFile.cpp 直接依赖于 APIManager.h,那么这种依赖性应该通过 #include 直接表达。
这基本上是一个风格问题,但是:
不,您不应该将其包含在 cpp 和标头中。它过于冗长,没有人这样做。
我不会,除非#include "APIManager.h"
可能不在标题中。
<string>
可能包含在 <iostream>
中,但无论如何您都应该包含<string>
,即使您的库包含它并且您使用<iostream>
在需要的地方包含标头。
如果您的类定义包括您要包含的标头中定义的对象,则应将它们包含在头文件中。 如果您只在 cpp 中使用标头的内容,请将其包含在 cpp 中。
切勿在 file.h 和 file 中包含相同的外部标头.cpp如果 file.cpp 还包括 file.h。
- 只要我不包含一个标题,重新定义C++关键字合法吗
- 如何确定 BMP 图像是否包含来自标题的 BGR 或 BGRA 像素
- 双重包含和仅标题库stbi_image
- C++:我需要在这里包含这个标题,我不知道为什么
- 如何包含已经包含我当前标题的其他标头
- 如何防止在标题中包含标头,以最大程度地减少包含在其他 CPP 中
- C 在多个源文件中包含具有同一类实现的不同标题文件
- 在命名空间外包含标题
- 在标题文件和CPP文件中都包含库
- 避免在标题中包含chrono
- "Error: 'dungeon_t' was not declared in this scope"但包含在标题中
- 我如何编写一个脚本来创建.cpp文件,其中包含所有标题内容
- 如何在C 项目中包含具有相似名称的标题文件
- 标题互相包含在C 中
- 如果我在标题文件中使用关键字的声明,则应该在定义本身中包含相同的关键字
- 在标题文件名中包含期限
- C 使用c库,其中包含标题文件中定义的全局变量
- 通过自制软件安装 freetype,似乎无法正确包含标题
- C++简单的类程序无法编译。我搞砸了包含标题吗? 'Error redefinition of a class'
- 前向声明/最好何时包含标题