模板问题之一:模板函数,把声明和定义都放在.h文件和分别放在.h文件和.cpp文件有什么区别啊?
为什么我写了一个模板函数,把声明和定义分别放在.h文件和.cpp文件种,如果不调用这个函数的话,编译连接都能通过,但是如果调用这个函数的话,连接就有错误如下:
--------------------Configuration: IRSEG - Win32 Release--------------------
Compiling...
Location.cpp
Linking...
Location.obj : error LNK2001: unresolved external symbol "void __cdecl output_vector(class std::vector<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator<class std::basic_string<char,struct s
td::char_traits<char>,class std::allocator<char> > > > &)" (?output_vector@@YAXAAV?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@@Z)
Release/IRSEG.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
IRSEG.exe - 2 error(s), 0 warning(s)
这个怎么回事?