为什么在制作C++项目时建议使用多个文件?

noo*_*456 1 c++ coding-style conventions

我正在学习 C++,来自 GML,它的语法非常相似。但我不明白的是为什么建议将一个项目分解为多个文件和多种类型的文件。

据我了解,cpp 文件是实际的程序代码,因此人们使用多个文件将程序的功能和部分分解为单独的文件。头文件与 cpp 的代码相同,但它们由 cpp 文件使用,因此它是可以在多个位置引用的重复代码。它是否正确?

对我来说,这没有多大意义,因为你不会为不同的版本交换文件,你仍然需要重新编译,并且所有文件都会合并到一个二进制文件中(或者如果有 dll,则合并一些文件)。

那么对我来说,只拥有一个大文件不是更有意义吗?不要在许多 cpp 文件中重复引用它们的头文件,只需将头文件代码放在单个 cpp 文件的顶部,并使用区域为许多 cpp 文件的内容创建文件下的部分。

我看过一些使用单个文件制作小游戏(例如贪吃蛇)的教程,它们只是在向下移动时创建部分。首先初始化变量,然后是包含所有函数和逻辑的另一部分。然后是渲染器,然后是底部的主函数。这不能扩展到大型项目吗?是否只是为了组织,因为虽然我仍在学习,但我觉得搜索许多文件试图跟踪哪些文件引用了哪些其他文件以及事情发生的位置会更令人困惑。如果所有内容都在一个文件中,您只需向下滚动,所做的任何引用都将是上面定义的代码。

这是错误的还是不常见?有缺点吗?

如果有人能提供一些见解,我将不胜感激。

Die*_*Epp 5

如果您愿意,可以使用一个文件。多个文件有好处。

\n
    \n
  • 是的,您确实会为不同的版本交换不同的文件。或者,至少,有些人是这样做的。这是制作在多个平台上运行的项目的常用技术。

    \n
  • \n
  • 导航非常大的文件很困难。项目可以有 100,000 行代码,也可以有 2,000,000 行代码,如果将所有内容都放在一个文件中,编辑可能会非常困难。您的文本编辑器可能会变慢,甚至可能无法将整个文件加载到内存中。

    \n
  • \n
  • 增量构建项目速度更快。对于典型项目来说,C++ 的平均构建时间相对较长。如果您有多个文件,则可以增量构建。这通常会更快,因为您只需重新编译已更改的文件及其依赖项。

    \n
  • \n
  • 如果您的项目非常大,并且您将所有内容都放在一个文件中,那么编译器在编译它时可能会耗尽内存。

    \n
  • \n
  • 您可以创建未命名的命名空间和静态变量/静态函数,它们无法从其他文件中调用。这使您可以编写一个文件私有的代码,并防止您意外调用它或访问其他文件中的变量。

    \n
  • \n
  • 多个团队成员可以分别处理不同的文件,并且当您将更改推送到共享存储库时,不会出现合并冲突。如果你们都处理同一个文件,则更有可能出现合并冲突。

    \n
  • \n
\n
\n

我觉得搜索许多文件试图跟踪哪些文件引用了哪些其他文件以及事情发生的位置会更令人困惑。

\n
\n

如果您有一个好的编辑器或 IDE,您只需单击函数调用或按 F12(或其他键),它就会跳转到该函数(或类型)的定义。

\n