2014-09-21 92 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