gpt4 book ai didi

c++ - 在标题中重复#include

转载 作者:行者123 更新时间:2023-11-28 00:27:25 25 4
gpt4 key购买 nike

考虑:

foo.h:

#include <string>
#include <vector>

class foo
{
std::string a;
std::vector<int> b;
};

bar.h:

#include <string>
#include <vector>
#include "foo.h" // <string> and <vector> included again

class bar
{
std::string c;
std::vector<bool> d;
};

问题:foo.h 中的 #include 是必需的吗?我知道 header 保护会阻止多个 #include,但是可以省略 foo.h 中的 #include 吗?

编辑: 抱歉,我真正想问的是,省略 bar.h 中的 #include 是否可以,因为它已经包含在 foo 中.h

最佳答案

依赖间接包含在任何重要的代码库中都是有问题的:假设您不包含 <string><vector>来自 bar.h .现在,当foo更改,例如以不同方式存储字符序列并删除包含 <string> , 你的标题 bar.h休息。因此,您创建了一个不必要的依赖项。

在小型项目中,这些破损无关紧要。在大型代码库中,它们很容易变成灾难性的。还值得注意的是,类表示的更改确实有效!

关于c++ - 在标题中重复#include,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24264195/

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