将模板的声明和实现都放在头文件
整个原理都在资料1中进行详细的解释,这里只是贴个链接。
另外简单的总结一下:
- c++编译是分离的,每个
source file
单独编译 - 模板的定义在cpp文件中,并不会针对具体的模板参数生成代码。(因为从来没有传入过模板参数)
- 使用者在传入模板参数对其进行使用的时候,由于包含了其头文件
- 因此知道其声明,可以编译过
- 但是不知道具体的定义,从来没有生成过有具体模板参数的代码,所以到链接阶段才会报错。
整个原理都在资料1中进行详细的解释,这里只是贴个链接。
另外简单的总结一下:
source file
单独编译