首页 > 后端开发 > C++ > C 类定义应该放在头文件中吗?

C 类定义应该放在头文件中吗?

Mary-Kate Olsen
发布: 2024-11-24 10:50:11
原创
255 人浏览过

Should C   Class Definitions Be Placed in Header Files?

C 定义在头文件中的放置:这是一种常见的做法吗?

在 C 编程领域,类的放置声明和定义引发了争论。传统上,规范是将这些方面分别分成包含文件和 *.cpp 文件。然而,一位同事声称,当前的最佳实践要求在头文件中包含定义。

为了评估这种所谓的新习惯用法的流行程度,让我们检查一下 C 开发中的广泛使用模式:

传统方法:分离声明和定义

无数的 C 开发者都遵循传统的方法样式,涉及在包含文件 (.h) 中声明类并在 .cpp 文件中实现它们的定义。这种做法类似于 Modula-2 和 Ada 中规范和正文文件的分离。

优点:

  • 模块化:有利于保持干净的分离类接口及其实现细节之间的关系。
  • 编译效率:从头文件中排除定义可以减少编译时间,尤其是在在编译单元中包含多个头文件。
  • 避免循环依赖:分离声明和定义可以减轻潜在的循环对象关系。

仅标头定义:替代方案

某些情况可能会证明将定义放在头文件中是合理的,特别是为了增强编译器优化(例如内联)。然而,采用这种方法也有缺点:

  • 编译时间增加:当头文件包含定义时,编译器必须在每次包含时处理整个代码。
  • 潜在的未定义行为:循环依赖或多重包含可能会导致未定义的行为。

何时仅标头定义是合适的

仅标头定义真正有利的唯一场景是在使用模板时。现代 C 库经常广泛使用模板,需要仅头文件定义。

结论:

不支持您的同事声称所有 C 声明都应在头文件中定义的说法按照惯例。虽然仅标题定义有其利基应用,但分离声明和定义的既定方法仍然是广泛接受的规范。

以上是C 类定义应该放在头文件中吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板