在C++中由于模板类自身的不确定性,当一个模板没有被调用时,它就不会被具体化出来,也就说在一个编译器单元里,如果使用模板类的函数没有被其他函数调用的话,是没有生成二进制码的,因为编译器并不知道这个函数属于哪个类型(int、float等),所以无法给这个函数分配盒是的内存空间,只有当其他函数调用模板类的函数时,才能确定类型,模板类才能被具体化。
因此要么把.h文件与.cpp文件合并到一起 要么同时include(包含)头文件与源文件。
(想了解的更加详细,可以去了解exe的编译过程)
在C++中由于模板类自身的不确定性,当一个模板没有被调用时,它就不会被具体化出来,也就说在一个编译器单元里,如果使用模板类的函数没有被其他函数调用的话,是没有生成二进制码的,因为编译器并不知道这个函数属于哪个类型(int、float等),所以无法给这个函数分配盒是的内存空间,只有当其他函数调用模板类的函数时,才能确定类型,模板类才能被具体化。
因此要么把.h文件与.cpp文件合并到一起 要么同时include(包含)头文件与源文件。
(想了解的更加详细,可以去了解exe的编译过程)