Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/138.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为清晰起见';看在上帝的份上,是否应该将.h文件中已经包含的所有内容都包含在.cpp文件中?_C++ - Fatal编程技术网

C++ 为清晰起见';看在上帝的份上,是否应该将.h文件中已经包含的所有内容都包含在.cpp文件中?

C++ 为清晰起见';看在上帝的份上,是否应该将.h文件中已经包含的所有内容都包含在.cpp文件中?,c++,C++,假设我有一些.h文件 随机的 \ifndef RANDOM\u H #定义随机数 #包括 #包括 #包括 类随机{ std::向量m_向量列表; } #恩迪夫 在相应的cpp文件中,我还应该 #包括 #包括 #包括 因此,无论是谁在处理实现,都不需要回过头来查看头文件,或者两次包含头文件是一种不好的做法吗?这不仅是一种不好的做法,而且如果头文件没有包含保护,它将抛出一个编译器错误(\ifndef/

假设我有一些.h文件

随机的

\ifndef RANDOM\u H
#定义随机数
#包括
#包括
#包括
类随机{
std::向量m_向量列表;
}
#恩迪夫
在相应的cpp文件中,我还应该

#包括
#包括
#包括

因此,无论是谁在处理实现,都不需要回过头来查看头文件,或者两次包含头文件是一种不好的做法吗?

这不仅是一种不好的做法,而且如果头文件没有包含保护,它将抛出一个编译器错误(
\ifndef
/
/
\endif
).

您正在定义一个新标题。因此,您不需要两次包含预定义的标题。这是合乎逻辑的。尽管您可以在新的头文件或.cpp文件中包含预定义的头文件。此外,如果由于
#ifdef
条件而定义了两次,则会引发编译器错误

#define 

#ifdef
#endif

#ifndef
     #define
#endif

基本上,这样做没有任何意义,即使是为了节省时间,因为:

程序员需要查看头文件。实际上,头文件是我在发现新程序时首先查找的文件。-巴兹勒斯塔林克维奇酒店


实现文件将始终需要返回头文件,因此它不会节省任何时间。@erip是的,我理解这一点。如果不清楚,我的意思是它有用吗?这样,从事项目工作的程序员就不需要回顾头文件中包含的内容。“从事实现工作的人不需要回顾头文件”-他们无论如何都需要回顾头文件。@zenith是的,我想是的。如果这是个愚蠢的问题,我很抱歉。这只是我脑子里一直在想的一件小事。程序员需要查看头文件。实际上,头文件是我在发现新程序时要查找的第一个文件。理论上是正确的,但实际上标准头文件通常有防护装置。我想我从来没有使用过没有防护装置的头文件。@NeilKirk甚至不是你第一个包含自己头文件的程序?:)那不算数!!标准头必须是幂等的,因此如果多次包含它们,就没有问题。正常情况下,理智的人也会将自己的标题设置为幂等。这是一句经久不衰的名言。@NeilKirk Lol有一次我在meta上问他们,如果答案在评论中,该怎么办,他们只是说,让它成为一个社区维基,因为我不会从别人的答案中得到代表,但是的,我认为这句名言是写给书的。