我知道这可能是非常主观的,但是当代码不必分成两个文件时,是否有任何通用规则?
例如,类是非常小的,还是文件只包含一些全局定义或静态函数?此外,在这些情况下,单个文件应该是.cpp文件还是.h文件?
在技术方面,每当您需要遵守一个定义规则时,您必须将声明与定义分开,因为您需要在多个转换单元中多次包含声明,但您必须只提供一个单一定义.
在美学方面,答案可能是"总是"或"系统地".在任何情况下,你应该始终有一个首标为每一个代码的逻辑单元(例如一个类或功能中的一个集合); 并且源文件可能是可选的,具体取决于您是否具有内联定义的所有内容(免除ODR),或者您是否有模板库.
作为元策略,您应该尽可能地将编译单元分离,以便您只能以细粒度的方式包含所需的内容.这使您的项目得以增长,而不会使编译时间变得难以忍受,并且使得在其他项目中重用代码变得更加容易.
我喜欢将代码放入 .hpp 文件中,但由于以下原因,我经常被迫将实现放入 .cpp 中:
inline。虽然,这并不重要;如果需要的话,优化编译器可能会内联。将代码内联在 .hpp 文件中是有逻辑动机的:
不过,我非常确定单独的 .cpp 和 .hpp 文件的传统比推理要强大得多。
| 归档时间: |
|
| 查看次数: |
3004 次 |
| 最近记录: |