我试图了解一些我在互联网上偶然发现的c ++代码。这是NVIDIA的灵活演示,带有令人敬畏的新流体模拟,因此我对代码进行了一些调查。在那里,我看到了一些我不明白的东西:在scene.h中有一个名为Scene的类。它没有包含,但它使用了helpers.h文件中的CreateRandomConvex函数。它们都只包含在main.cpp中,但没有使用它们中的任何一个。 所以现在我的问题是:如何在不包含它的情况下访问助手功能?如果Scene类没有包含,编译器如何知道他可以从哪里获取CreateRandomConvex函数?
代码: 主:
#include "B.h"
#include "A.h"
int main()
{
}
A.H:(场景)
#pragma once
class Scene
{
void Init()
{
CreateRandomConvex();
}
};
B.h:(助手)
#pragma once
void CreateRandomConvex()
{
//calc some stuff
}
答案 0 :(得分:1)
#include "A.h"
字面意思是“插入文件的内容”A.h“here”。
因此,在编译主文件时,编译器会看到
void CreateRandomConvex()
{
//calc some stuff
}
class Scene
{
void Init()
{
CreateRandomConvex();
}
};
int main()
{
}
作为旁注,有一个标题取决于另一个已经包含的标题,这不是一个很好的做法。
答案 1 :(得分:0)
要将A.h
包含在CPP文件中,您必须事先在该CPP文件中包含文件B.h
。