C++ 为清晰起见';看在上帝的份上,是否应该将.h文件中已经包含的所有内容都包含在.cpp文件中?
假设我有一些.h文件 随机的C++ 为清晰起见';看在上帝的份上,是否应该将.h文件中已经包含的所有内容都包含在.cpp文件中?,c++,C++,假设我有一些.h文件 随机的 \ifndef RANDOM\u H #定义随机数 #包括 #包括 #包括 类随机{ std::向量m_向量列表; } #恩迪夫 在相应的cpp文件中,我还应该 #包括 #包括 #包括 因此,无论是谁在处理实现,都不需要回过头来查看头文件,或者两次包含头文件是一种不好的做法吗?这不仅是一种不好的做法,而且如果头文件没有包含保护,它将抛出一个编译器错误(\ifndef/
\ifndef RANDOM\u H
#定义随机数
#包括
#包括
#包括
类随机{
std::向量m_向量列表;
}
#恩迪夫
在相应的cpp文件中,我还应该
#包括
#包括
#包括
因此,无论是谁在处理实现,都不需要回过头来查看头文件,或者两次包含头文件是一种不好的做法吗?这不仅是一种不好的做法,而且如果头文件没有包含保护,它将抛出一个编译器错误(
\ifndef
/
/\endif
).您正在定义一个新标题。因此,您不需要两次包含预定义的标题。这是合乎逻辑的。尽管您可以在新的头文件或.cpp文件中包含预定义的头文件。此外,如果由于#ifdef
条件而定义了两次,则会引发编译器错误
#define
#ifdef
#endif
#ifndef
#define
#endif
基本上,这样做没有任何意义,即使是为了节省时间,因为: 程序员需要查看头文件。实际上,头文件是我在发现新程序时首先查找的文件。-巴兹勒斯塔林克维奇酒店
实现文件将始终需要返回头文件,因此它不会节省任何时间。@erip是的,我理解这一点。如果不清楚,我的意思是它有用吗?这样,从事项目工作的程序员就不需要回顾头文件中包含的内容。“从事实现工作的人不需要回顾头文件”-他们无论如何都需要回顾头文件。@zenith是的,我想是的。如果这是个愚蠢的问题,我很抱歉。这只是我脑子里一直在想的一件小事。程序员需要查看头文件。实际上,头文件是我在发现新程序时要查找的第一个文件。理论上是正确的,但实际上标准头文件通常有防护装置。我想我从来没有使用过没有防护装置的头文件。@NeilKirk甚至不是你第一个包含自己头文件的程序?:)那不算数!!标准头必须是幂等的,因此如果多次包含它们,就没有问题。正常情况下,理智的人也会将自己的标题设置为幂等。这是一句经久不衰的名言。@NeilKirk Lol有一次我在meta上问他们,如果答案在评论中,该怎么办,他们只是说,让它成为一个社区维基,因为我不会从别人的答案中得到代表,但是的,我认为这句名言是写给书的。