C ++ / CLI:在.cpp中定义所有内容或在.h或.cpp中分开?

时间:2011-10-04 13:41:26

标签: c++-cli unmanaged managed project-organization

将所有美学考虑放在一边......哪种替代方案更受欢迎?我主要关心的是构建时间,保持代码可读性和易于保持,当然还有编译。

我已经看到大多数书籍都在.cpp文件中定义了所有内容,而不是#C#,但是......是否会使构建时间恶化?好的,很可能是非托管C ++原理并不适用于托管C ++ / CLI,请考虑转换场景:非托管C ++的项目类被移动进入一个C ++ / CLI项目,整个怪物构建正常,并坐在那里等待一个勇敢的家伙(我,咳咳)将非托管类转换为托管类,当然,逐步并使用支持测试工具。

我离题了一点,但我想让你在回答时考虑我的异常情况(管理和非托管互动)。

1 个答案:

答案 0 :(得分:5)

.h文件是预处理器的工件。当编译器开始编译代码时,它只是一大堆代码。在C ++ / CLI中,.h文件的使用大大减少,您不再需要它来为其他模块提供声明。在托管代码中,程序集中的元数据提供它们。

C ++ / CLI保留了C ++的构建模型,它一次编译一个源代码文件,需要链接器将代码粘合在一起。如果您的一个项目的C ++ / CLI代码分布在多个源代码文件中,您可能仍需要.h文件。

因此,只有在需要时才使用.h文件。对本地项目没有什么不同的建议。