关于C++模板的链接错误问题
2014-09-15 22:48
225 查看
好久不用C++了,前几天写了一个模版,按以前的习惯,把定义写在头文件中, 把实现写在cpp文件中。结果在编译的时候没有发生错误,但在连接的时候出现了找不到xxx的错误。一时之间不知道该怎么办才好,后来上网一查,自己再一想,唉,原来如此:
模版之所以为模版,就是可以容纳不同的类型嘛,所以它只有在指定了其类型的时候才会生成实际的代码,如果你只把模版的定义写在头文件中,那么你生成在使用模版的时候就只会有声明的定义部分,而没有其具体的实现,所以链接器在连接时会报错。
解决的办法有两个:
1. 把模版的声明和实现都写在一个头文件中,然后用的时候包含这个头文件。
2. 如果你已经把它们分开了,比如说xxx.h xxx.cpp。那也好办,只好在使用的时候#include “xxx.h” #include “xxx.cpp”即可。
模版之所以为模版,就是可以容纳不同的类型嘛,所以它只有在指定了其类型的时候才会生成实际的代码,如果你只把模版的定义写在头文件中,那么你生成在使用模版的时候就只会有声明的定义部分,而没有其具体的实现,所以链接器在连接时会报错。
解决的办法有两个:
1. 把模版的声明和实现都写在一个头文件中,然后用的时候包含这个头文件。
2. 如果你已经把它们分开了,比如说xxx.h xxx.cpp。那也好办,只好在使用的时候#include “xxx.h” #include “xxx.cpp”即可。
相关文章推荐
- 关于C++模板和重载的小问题
- 关于vs2008上的socket链接错误问题
- 关于vs2008上的socket链接错误问题
- 关于vs2010 C++编译链接总是出现“LNK:2019 无法解析的外部符号”的问题
- 关于vs2008上的socket链接错误问题
- [分享] 关于App Store下载到一半发生错误的问题 [复制链接]
- 转贴:关于C++模板和重载的小问题
- 关于C++模板编译不了的问题
- 关于C++模板封装的问题(关于C++模板参数的声明)
- C++调用python时 debug链接错误python_d.lib无法解析的问题
- 关于C++模板和重载的小问题
- c++菜鸟错误笔记3关于传值与引用的问题
- 关于C++模版的连接错误问题
- ffmpeg链接错误:关于C++ extern "C"
- 关于C++模板和重载的小问题
- 关于c++模板的一些问题
- C++模板定义与实现分离所导致的链接错误LNK2019
- 关于vs2008上的socket链接错误问题
- C++关于编译链接方面的问题
- C++ Template中关于模板类的成员模板函数显示实例化的问题