我想了解一些我在互聯網上偶然發現的C++代碼。這是來自NVIDIA的Flex演示,其中包括令人敬畏的新流體模擬,所以我在代碼中進行了一些窺視。在那裏,我看到了一些我不明白的東西:在scene.h中有一個名爲Scene的類。它沒有包含,但它使用了helpers.h文件中的CreateRandomConvex函數。它們都只包含在main.cpp中,但它沒有使用它們中的任何一個。 所以我現在的問題是:Scene類如何在不包含它的情況下訪問helpers函數?如果Scene類沒有include,編譯器如何知道他可以從哪裏獲得CreateRandomConvex函數?瞭解#includes C++
代碼: 主:
#include "B.h"
#include "A.h"
int main()
{
}
啊:(場景)
#pragma once
class Scene
{
void Init()
{
CreateRandomConvex();
}
};
了Bh:(助手)
#pragma once
void CreateRandomConvex()
{
//calc some stuff
}
作爲一個方面說明,在編譯預編譯頭文件時,您總是可以依賴於這樣一個事實,即所有屬於預編譯頭文件的部分都將包含在任何其他頭文件之前。 –
所以一個包含並不意味着:如果你不知道什麼,請在包含中查找它。而是:寫在那裏的一切都應該寫在這裏 – Dynamitos
@Dynamitos正是如此。 – molbdnilo