Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/160.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++ 若我在头中有一个include语句,我需要把它放在源代码中吗?_C++ - Fatal编程技术网

C++ 若我在头中有一个include语句,我需要把它放在源代码中吗?

C++ 若我在头中有一个include语句,我需要把它放在源代码中吗?,c++,C++,进一步提出以下问题: 如果我在头文件中已经有一个include语句,例如#include,我还需要把它放在源文件中吗?我可以在两个文件中都使用#include进行编译,从源文件中删除#include也可以 那么,哪一个更合适,或者它实际上并不重要?如果您的第一个包含文件依赖于第二个包含文件,例如,第一个包含文件引用了第二个包含文件中的类或typedef,则将第二个包含文件放在第一个包含文件中。如果他们是独立的。包括源文件中的这两个 为了避免两次包含文件时出现问题,人们通常 #ifndef INC

进一步提出以下问题:

如果我在头文件中已经有一个include语句,例如#include,我还需要把它放在源文件中吗?我可以在两个文件中都使用#include进行编译,从源文件中删除#include也可以


那么,哪一个更合适,或者它实际上并不重要?

如果您的第一个包含文件依赖于第二个包含文件,例如,第一个包含文件引用了第二个包含文件中的类或typedef,则将第二个包含文件放在第一个包含文件中。如果他们是独立的。包括源文件中的这两个

为了避免两次包含文件时出现问题,人们通常

#ifndef INCLUDE_FILE_NAME_INCLUDED
#define INCLUDE_FILE_NAME_INCLUDED
.......
#endif
在包含文件的开头/结尾,因此即使包含两次,也会第二次定义包含的文件名,并且不会对文件进行两次计算。

\35; include
cascades。因此,如果您在
文件.h
中包含
,然后在
文件.cpp
中包含
文件.h
,您将在
文件.cpp
中包含
iostream

文件.h
但是请记住:当头文件本身需要导入定义时,仅在头文件中包含

简短回答:仅将其放在必须的位置

如果编译时根本不需要
#include
指令,请执行该操作。
否则,如果您只能在源文件中使用它进行编译,请执行此操作。
否则,必须将其放在头文件中,但不要将其也放在源文件中


之所以宁愿将其放在源文件而不是头文件中,是为了避免在包含头文件的其他文件中产生不必要的依赖关系。

谢谢您的建议。我想大部分内置的东西都已经有人看守了。这里的问题更多的是“正确的”。无论如何,是的。谢谢你的建议!那我就遵循这个经验法则。
#include <iostream>
...
#include "file.h"

// iostream definitions are available.