今天写程序,将模板内的定义放在了.h文件中,而实现放在了.cpp中,
编译通过了,可连接怎么也不能成功。。
查了一些书才知道,模板类的定义和实现必须放在同一文件,
《c++编程思想》中说:模板类定义很特殊,由template<...>定义的任何东西都意味着编译器在当时不为它分配内存空间,它一直处于等待状态,直到被一个模板实例告知,即模板参数是由编译器来替换的。
为了容易使用,几乎总是在头文件中放置全部的模板声明和定义。有时,也可能为了满足特殊需要而要在独立的cpp中放置模板的实现。但大部分现在的编译器还不支持模板类的定义和实现分开