关于C++模板的链接错误问题

来源:互联网 发布:巨人的陨落英文版 知乎 编辑:程序博客网 时间:2024/05/22 14:34

     好久不用C++了,前几天写了一个模版,按以前的习惯,把定义写在头文件中, 把实现写在cpp文件中。结果在编译的时候没有发生错误,但在连接的时候出现了找不到xxx的错误。一时之间不知道该怎么办才好,后来上网一查,自己再一想,唉,原来如此:

     模版之所以为模版,就是可以容纳不同的类型嘛,所以它只有在指定了其类型的时候才会生成实际的代码,如果你只把模版的定义写在头文件中,那么你生成在使用模版的时候就只会有声明的定义部分,而没有其具体的实现,所以链接器在连接时会报错。

    解决的办法有两个:

     1. 把模版的声明和实现都写在一个头文件中,然后用的时候包含这个头文件。

     2. 如果你已经把它们分开了,比如说xxx.h xxx.cpp。那也好办,只好在使用的时候#include “xxx.h” #include “xxx.cpp”即可。

0 0
原创粉丝点击