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

问题描述 投票:0回答:1

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

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

对我来说这没有多大意义,因为您不会为不同的构建交换文件,您仍然必须重新编译并且所有文件都合并到一个二进制文件中(如果有 dll,则合并几个文件)。

所以对我来说,只有一个大文件不是更有意义吗?与其在许多 cpp 文件中重复引用头文件,不如将头文件代码放在单个 cpp 文件的顶部,并使用区域创建多个 cpp 文件内容的部分。

我看过一些使用单个文件制作像蛇这样的小游戏的教程,他们只是在向下移动时创建部分。首先初始化变量,然后是包含所有函数和逻辑的另一部分。然后是渲染器,然后是底部的主要功能。这不能扩大到一个大项目吗?它只是为了组织,因为在我还在学习的同时,我觉得搜索许多文件试图跟踪哪些文件引用了哪些其他文件以及事情发生的位置会更加混乱。与如果它全部在一个文件中相比,您只需向下滚动,所做的任何引用都将是上面定义的代码。

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

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

c++ coding-style conventions
1个回答
2
投票

如果你喜欢,你可以使用一个文件。多个文件有好处。

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

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

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

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

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

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

我觉得搜索许多文件试图跟踪哪些文件引用了哪些其他文件以及事情发生的位置更加混乱。

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

© www.soinside.com 2019 - 2024. All rights reserved.