我写了一个类模板,习惯上还是和普通类一样把类模板声明放到一个头文件里,把类模板成员函数放到一个源文件里,main函数放到另一个源文件里,可是链接时出错,错误信息都是这种:“error LNK2001: unresolved external symbol "public: __thiscall ……”
可是我把类模板成员函数和main函数放到同一个源文件里
或者
把类模板成员函数和类模板声明放到同一个头文件里
再编译链接就不出错了,我百思不得其解,郁闷……,各位高手指点一下吧。
VC++6.0 + vssp5
正常,模板的实现要和定义一起放在头文件中。
C++标准有个export关键字可以使模板定义和实现分离。但是至今只有一个编译器实现了这个关键字,另外,就算用这个关键字也不能使得模板和实现真正分离,标准规定凡是用到模板的地方一定要“看到”它的整个定义。
同意楼上的
模板的实现要和定义放在一起