自己捉摸了好久好久终于找到问题大概在哪了:
《C++ primer》上面有这么一段话:“当编译器看到模板定义的时候,它不立即产生代码。只有在看到用到模板时,如调用了函数模板或定义了类模板的对象的时候,编译器才产生特定类型的模板实例。”
问题就出在我原来这个项目是编译过的,VC保存那些编译后的文件,而且当同一个项目中的文件产生更改的时候,VC只重新编译那些更改过的文件。而我只更改了定义模板的文件,在引用这个模板的文件里没有更改,这是不是就导致了链接时出现问题?具体细节我也不太清楚,只知道大概就是这么回事,因为只要重新生成整个项目,或者在引用的文件里也动一下手脚让它重新编译,就没有这个问题了。