我最初询问为什么C++需要.h
文件。我有一个问题,为什么不只做#include /file.cpp
(在file.cpp
中将包含函数/类的声明和定义),但是我发现this链接指出,这样做实际上超越了从file.cpp
复制所有代码。因此,如果我了解这项权利:
#include /file.cpp
而不是实际的file.cpp
本身,是否可以防止发生此错误?还是自动编译并链接#include
的任何内容? .h
文件的内容也很容易编译已列在#include
而不是.cpp
文件中的.cpp
文件。将被调用多次(即.cpp
文件只需要编译一次)? 最佳答案
Or is it such that you automatically compile AND link anything that you #include?
#include
只需复制即可将文件粘贴到位。它与链接无关。因此,如果您对文件进行
#include
编码,则无需自己对其进行编译。If it is possible, then is the reason why we don't do this because in large projects, it is easier to compile a .h file that has been listed to #include instead of a .cpp file
头文件只是旨在成为
#include
d的文件,仅此而已,仅此而已。因此,它们不是自己编译的。使用头文件是因为当您有多个编译文件(翻译单元)时,必须有某种方法可以将功能,类等彼此共享。因此,将使用任何其他编译文件需要使用的信息来创建头文件。
例如,如果您在
f
中定义了函数a.cpp
,则需要在其他文件中声明b.cpp
,c.cpp
等。代替在每个文件中重复声明(重复自己几乎没有用!),人们创建了头文件和#include
它。因此,头文件在C++中并不是严格必需的,但是由于没有人愿意重复自己,因此我们使用它们。
而且,如果需要,您绝对可以将整个程序编译为单个翻译单元,并可能带有 header 。但是,大多数项目并不是为了在更改很小时加快编译速度。
关于c++ - #include .cpp是否无效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61044730/