gpt4 book ai didi

c++ - 转发声明/什么时候最好包含标题?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:08:51 24 4
gpt4 key购买 nike

我很清楚什么时候可以/不能使用前向声明,但我仍然不确定一件事。

假设我知道我迟早必须包含一个 header 来取消引用类 A 的对象。我不清楚做这样的事情是否更有效率..

class A;
class B
{
A* a;
void DoSomethingWithA();
};

然后在 cpp 中有类似的东西..

#include "A.hpp"
void B::DoSomethingWithA()
{
a->FunctionOfA();
}

或者我是否也可以首先将 A 的 header 包含在 B 的 header 文件中?如果前者效率更高,那么如果有人清楚地解释为什么我会很感激,因为我怀疑它与编译过程有关,而我总是可以通过了解更多信息来做到这一点。

最佳答案

尽可能使用前向声明(如您的示例)。这减少了编译时间,但更重要的是最大限度地减少了不需要知道也不关心实现细节的代码的头文件和库依赖性。一般来说,除了实际实现之外,没有任何代码应该关心实现细节。

这是谷歌对此的理由:Header File Dependencies

关于c++ - 转发声明/什么时候最好包含标题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10469531/

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