【问题标题】:C++/CLI: Define everything in .cpp or separate in .h or .cpp?C++/CLI:在 .cpp 中定义所有内容还是在 .h 或 .cpp 中分开?
【发布时间】:2011-10-04 13:41:26
【问题描述】:

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

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

我跑题了,但我希望你在回答时考虑我的不寻常情况(托管和非托管交互)。

【问题讨论】:

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


    【解决方案1】:

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

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

    因此,仅在需要时使用 .h 文件。对于原生项目来说,建议没有什么不同。

    【讨论】:

    • 所以如果我将 .h 和 .cpp 分开,构建时间不会增加或减少(明显)?
    • 文件越少,构建速度越快。效果很小,不要指望奇迹。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多