知道这些模板不是类和成员函数定义至关重要。它们是C++编译器指令,说明了如何生成类和成员函数定义。模板的具体实现——如用来处理string对象的栈类——被称为实例化(instantiation)或具体化(specialization)。
不能将模板成员函数放在独立的实现文件中(以前,C++标准确实提供了关键字export,让你能够模板成员函数放在独立的实现文件中,但支持该关键字的编译器不多;C++11不再这样使用关键字export,而将其保留用于其他用途)。由于模板不是函数,不能单独编译,模板必须与特定的模板实例化请求一起使用。为此,最简单的方法是将所有模板信息放在一个头文件中,并在要使用这些模板的文件中包含头文件。