所以,我听说 C++ 模板不应该分为头文件 (.h) 和源文件 (.cpp)。
例如,这样的模板:
template <class T>
class J
{
T something;
};
这是真的吗?为什么会这样?
如果因此我必须将声明和实现放在同一个文件中,我应该将它放在 .h 文件还是 .cpp 文件中?
最佳答案
标题。
这是因为模板是在编译时而不是链接时实例化的,并且不同的翻译单元(大致相当于您的 .cpp
文件)仅在链接时相互“了解”。 header 往往在编译时被广泛“了解”,因为您在任何需要它们的翻译单元中#include
它们。
关于c++模板和头文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5612791/