2014-09-21 18 views
0

如果我有一個名爲program.h的程序頭文件和一個名爲program.template的模板,我知道你需要在#endif之前的program.h文件底部包含「program.template」。 這似乎與以前在文件頂部有#include的方法不一致。爲什麼是這樣?C++爲什麼模板頭部的底部#include?

我的另一個問題是,你需要在program.template文件中包含#include「program.h」嗎?爲什麼或者爲什麼不?如果是這樣,在文件的頂部或底部?

謝謝!

+5

相關:http://stackoverflow.com/questions/495021/why-can-templates-only-be-implemented-in-the-header-file – juanchopanza 2014-09-21 17:26:12

+1

所有'#include'的確基本上是複製粘貼文件那裏的內容。 – chris 2014-09-21 17:41:47

回答

1

#include是一個C/C++預處理指令。它告訴編譯器(預處理器組件)將文件X的內容(例如頭文件)轉儲到#include位置的當前文件的源代碼中。

#include指令可用於許多方面,需要將它放在另一個頭文件/ C/CPP文件的開始,結尾或中間。

沒有看到您的代碼,很難說出它是什麼或爲什麼完成。

+0

實際上很簡單,告訴它爲什麼完成:通常需要對所述函數的消費者可見「模板」主體。 – Yakk 2014-09-21 18:33:06

相關問題