C++ C++;为什么要在模板标题底部添加#include?

C++ C++;为什么要在模板标题底部添加#include?,c++,templates,syntax,C++,Templates,Syntax,如果我有一个名为program.h的程序头文件和一个名为program.template的模板,我了解到需要在#endif之前#在program.h文件的底部包含“program.template”。 这似乎与以前将#include放在文件顶部的方法不一致。为什么会这样 我的另一个问题是,是否需要在program.template文件中包含“program.h”?为什么?如果是,在文件的顶部还是底部 谢谢 #include是一个C/C++预处理器指令。它告诉编译器(预处理器组件)将文件X(例如头

如果我有一个名为program.h的程序头文件和一个名为program.template的模板,我了解到需要在#endif之前#在program.h文件的底部包含“program.template”。 这似乎与以前将#include放在文件顶部的方法不一致。为什么会这样

我的另一个问题是,是否需要在program.template文件中包含“program.h”?为什么?如果是,在文件的顶部还是底部

谢谢

#include
是一个C/C++预处理器指令。它告诉编译器(预处理器组件)将文件X(例如头文件)的内容转储到当前文件的源代码中的#include位置

#include指令可以以多种方式使用,这需要将它放在另一个头/C/CPP文件的开始、结束或中间


如果看不到你的代码,就很难说出它是做什么或为什么做的。

相关:所有的
#include
基本上都是复制粘贴文件内容在那里。事实上,告诉它为什么做是非常简单的:
模板
主体通常需要对上述功能的消费者可见。