是的,所以我会尽力解释我的问题。基本上在我的一个头文件中我需要使用一个类,显然要做到这一点,我必须在当前的那个包含该类的标题。我只是想,因为我打算稍后在线创建这个类的新实例,我是否还应该将它包含在.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()
{
}
试着在这里寻找它,但我不确定如何表达它,所以如果已经被问过这样的道歉。
另外,一般来说,您应该在该类的标题中包含该类源所需的头文件吗?感谢。
答案 0 :(得分:2)
这基本上是一个风格问题,但是:
不,你不应该把它包含在cpp 和标题中。它过于冗长,没有人这样做。
答案 1 :(得分:2)
如果源文件是Environment.cpp,你正在实现在Environment.h中声明的内容,那么不,你不应该重新包含它。
另一方面,如果源文件是SomeOtherFile.cpp,您只需使用来自Environment.h的声明,并且您将单独使用APIManager.h中的声明,而不考虑它们作为环境的一部分使用.h,那么是的,你应该。您不希望将来的更改从SomeOtherFile.cpp中删除#include <Environment.h>
以意外破坏它。
换句话说,如果SomeOtherFile.cpp直接依赖于APIManager.h,那么该依赖应该通过#include直接表达。
答案 2 :(得分:0)
我不会,除非#include "APIManager.h"
可能不在标题中。
<string>
可能包含在<iostream>
中,但即使您的图书馆包含<string>
,您也应该包括<iostream>
,并使用How can i get the user id from facebook url and get the basic info ?
答案 3 :(得分:0)
在需要的地方加入标题。
如果您的类定义包含您所包含的标头中定义的对象,则应将它们包含在头文件中。如果您只使用cpp中标题的内容,则将其包含在cpp。
中如果file.cpp还包含file.h,则永远不要在file.h和file.cpp中包含相同的外部头。