无论出于何种原因,我们公司都有一个编码指南,其中规定:
Each class shall have it's own header and implementation file.
因此,如果我们编写一个名为 MyString
的类,我们将需要关联的 MyStringh.h 和 MyString.cxx 。
还有其他人这样做吗?有没有人看到任何编译性能的影响? 10000 个文件中的 5000 个类的编译速度是否与 2500 个文件中的 5000 个类一样快?如果不是,差异是否明显?
[我们编写 C++ 代码并使用 GCC 3.4.4 作为我们的日常编译器]
原文由 Mike Baker 发布,翻译遵循 CC BY-SA 4.0 许可协议
这里的术语是 翻译单元,您真的希望(如果可能)每个翻译单元有一个类,即每个 .cpp 文件一个类实现,并具有相应的同名 .h 文件。
以这种方式做事通常更有效(从编译/链接的角度来看),特别是如果您正在做诸如增量链接之类的事情。这个想法是,翻译单元是孤立的,这样,当一个翻译单元发生变化时,你不必重建很多东西,如果你开始将许多抽象集中到一个翻译单元中,你就必须这样做。
此外,您会发现许多错误/诊断是通过文件名报告的(“Myclass.cpp 中的错误,第 22 行”),如果文件和类之间存在一对一的对应关系,它会有所帮助。 (或者我想您可以将其称为 2 对 1 对应)。