gpt4 book ai didi

c++ - 理解#includes C++

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

我试图理解我在 Internet 上偶然发现的一些 C++ 代码。这是来自 NVIDIA 的 flex 演示,带有令人敬畏的新流体模拟,所以我浏览了一下代码。在那里,我看到了一些我不明白的东西:在 scene.h 中有一个名为 Scene 的类。它没有包含,但它使用了 helpers.h 文件中的 CreateRandomConvex 函数。它们都只包含在 main.cpp 中,但它没有使用它们中的任何一个。所以我现在的问题是:Scene 类如何在不包含 helpers 函数的情况下访问它?如果 Scene 类没有包含,编译器如何知道他可以从哪里获得 CreateRandomConvex 函数?

代码:主要:

#include "B.h"
#include "A.h"

int main()
{

}

A.h:(场景)

#pragma once
class Scene
{
void Init()
{
CreateRandomConvex();
}
};

B.h:( helper )

#pragma once
void CreateRandomConvex()
{
//calc some stuff
}

最佳答案

#include "A.h" 字面意思是“在这里插入文件“A.h”的内容”。

所以在编译主文件的时候,编译器看到

void CreateRandomConvex()
{
//calc some stuff
}

class Scene
{
void Init()
{
CreateRandomConvex();
}
};

int main()
{

}

附带说明,让一个 header 依赖于另一个已经包含的 header 并不是一个很好的做法。

关于c++ - 理解#includes C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34963589/

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