c++ - #include .cpp是否无效?

标签 c++

我最初询问为什么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.cppc.cpp等。代替在每个文件中重复声明(重复自己几乎没有用!),人们创建了头文件和#include它。

    因此,头文件在C++中并不是严格必需的,但是由于没有人愿意重复自己,因此我们使用它们。

    而且,如果需要,您绝对可以将整个程序编译为单个翻译单元,并可能带有 header 。但是,大多数项目并不是为了在更改很小时加快编译速度。

    关于c++ - #include .cpp是否无效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61044730/

    相关文章:

    c++ - Netbeans C/C++ 项目中的代码相同但输出不同

    c++ - 错误 C3867 多线程 C++

    c++ - 如何使用 QModelIndex 从 QStandardItemModel 获取路径?

    c++ - 为什么Boost图形库的read_graphviz()函数会更改节点的索引

    c++ - 指向多维静态分配数组部分的指针的语法

    javascript - 使用 Emscripten 从 JavaScript 异步调用 C++ 函数

    c++ - 64位和32位无符号整数双向映射的高效实现

    c++ - 调用析构函数后访问对象

    c++ - 将数字数据写成二进制还是写成二进制?

    c++ - SDL 纹理数组?