c++ - 删除不必要的包含时的最佳实践是什么?

标签 c++ include readability

我在File.h中有这种情况:

//File.h
#include "Info.h"
#include "Constants.h"

Info.h 已包含 Constants.h

//Info.h
#include "Constants.h"

但是 File.h 直接使用 Constants.h 中定义的内容

一切都受编译指示保护,因此文件不会被包含两次。

我应该保留

//File.h
#include "Constants.h"

放在 File.h 中以提高可读性,还是将其删除,因为它已包含在 Info.h 中?

最佳答案

您应该依赖包含您需要的内容的另一个 header ,但应明确包含您需要的 header 。

特别是:尝试将包含内容移至 cpp 文件(而不是 header )中,以最大程度地减少更改后翻译单元的重新编译。

避免通过一系列其他包含来包含内容,可以为可维护性和代码维护任务期间减少错误和问题铺平道路。


引用文献:许多商业范围的产品都认同这一理念,including LLVM .

除此之外,一切都取决于你。

关于c++ - 删除不必要的包含时的最佳实践是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25032723/

相关文章:

java - 将 OpenCV 转换为 JavaCV - 在函数 cvHoughLines2() 中需要帮助

path - NAnt - 如何获取包含脚本的目录路径

java - 如何在 Java 中返回标志和可选消息?

c# - Flesch-Kincaid 可读性测试

c++ - 检测std::shared_ptr持有原始数组(并获取其大小)

c++根据数据类型将输入文件中的数据读入3个并行数组

c++ - 尝试制作 shared_ptr 时 std::make_shared() 出错?

php - 一个文件夹中有 100 万个或更多文件,用于包含(缓存)

c++ - 包含在 MacOS 上使用 g++ 编译时未找到的路径

module - Lua 意大利面条模块