c++-cli - C++/CLI : Define everything in . cpp 或在 .h 或 .cpp 中分开?

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

抛开所有审美考虑...哪种选择更可取?我主要关心的是构建时间、保持代码的可读性和易于维护,当然还有编译。

我见过大多数书籍都在 .cpp 文件中定义所有内容,就像 C# 一样,但是……这不会缩短构建时间吗?好吧,很可能是非托管 C++ 基本原理不适用于托管 C++/CLI,但是请考虑一个转换场景:非托管 C++ 的项目类被移动到 C++/CLI 项目中,并且整个怪物构建正常,坐在那里等待一个勇敢的人(我,咳咳)将非托管类逐渐转换为托管类,当然还有支持测试工具。

我有点跑题了,但我希望您在回答时考虑我的异常情况(托管和非托管交互)。

最佳答案

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

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

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

关于c++-cli - C++/CLI : Define everything in . cpp 或在 .h 或 .cpp 中分开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7648837/

相关文章:

visual-c++ - 将 .Net ref (%) 转换为原生 (&)

algorithm - 哪个是多精度乘法最有效的算法?

c++-cli - c++ 密封和接口(interface)

c# - 将指针编码到字符串数组

c# - 在非托管 C++ DLL 和托管 C# UI 之间发送信息

c# - 在 C# - C++/CLI - C++ Windows 窗体应用程序退出之前跟踪 - 并正确结束 - native 和托管线程

c++ - 将托管 C# DLL 包含到非托管 C++ DLL 中——全部在一个文件中

c++ - 理解托管 C++

c++ - 如何制作 C++ native 项目的 CLI/C++ 包装器

c# - 如何防止在托管代码中创建并传递给非托管代码的函数指针被垃圾收集