gpt4 book ai didi

C++ 包含结构

转载 作者:行者123 更新时间:2023-11-30 04:16:36 24 4
gpt4 key购买 nike

我想知道在包含头文件时应该遵循什么标准。如果这些地方使用此类头文件,那么在相关地方重新包含头文件是否是一种好习惯?例如,

假设您有一个包含 iostream 和自定义类“myclass.h”的 main.cpp 类,因为您在 main 中同时使用了 std::ostream 和 myclass 的一个实例。

现在,在您的“myclass.h”中您还包含了 iostream,因为在您的类中您使用了 std::ostream。

如果您现在回头看,main 在技术上包含了 iostream 两次,因为它本身包含了它,而且它还包含在“myclass”(main 包含)中。我可以想出一个好的理由和一个坏的理由,我想知道哪种方法才是正确的做法。

  1. 保留两个包含项并让包含项守卫完成他们的工作。如果您更改“myclass”中的实现并删除 iostream 包含,您的 main 将不会中断,因为它明确包含 iostream。
  2. 只保留“myclass”中的 include 并将其从 main 中删除,以包含单个 iostream include(并缩短编译时间?),修复在更改“myclass”中的实现时出现的任何错误,以及删除出现的 iostream 包含。

我更倾向于第一种解决方案,但我还是不太了解 C++ 标准。谢谢,-弗朗西斯科

最佳答案

将 include 保留在两个文件中,让 include guards 完成他们的工作。

如果您依赖于“间接”包含,如果您稍后更改“myclass.h”并想知道为什么您的 std::ostream 在 main.cpp 中不再工作,那么错误可能会很痛苦。也可能会让其他人感到困惑

关于C++ 包含结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17636393/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com