可能重复:
Why can templates only be implemented in the header file?
Why should the implementation and the declaration of a template class be in the same header file?模板和分裂成的.h/.cpp文件
我要创建一对夫妇的ADT,并比较它们的性能(我参加一个数据结构课程并想进行实验;注意:我们的教师使用Java)。我想创建泛型类,这样我就不会陷入特定的数据类型。我很久以前就读过,不可能分解模板类。保持代码清洁的最佳方法是什么?最明显的方法是在不隐藏实现的情况下简单使用.cpp文件,例如在java中。有没有其他方法可以使用?
简短的答案是将它全部留在标题中。稍微长一点的版本是为了确保它在编译时结束于头部。 (换句话说,如果你有多个文件,头文件必须包含它们。) – Corbin
你试图避免在头文件中定义你的方法吗? –
使用C++ 11 extern模板或将其保留在标题中。 – chris