关于C++模版的连接错误问题
2011-03-23 17:29
204 查看
好久不用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++模版的连接错误问题
- 关于vs2013上面socket连接错误的问题
- 关于kettle 与mysql 连接后 出现错误的问题
- c++关于#include <afx.h>头文件错误问题
- 关于C++模版的代码文件放置问题
- 关于C++模板的连接问题
- 关于ueditor网络连接错误问题
- 关于C++中rebegin显示错误的问题
- 关于SqlServer2005的jdbc连接的TCP/IP错误问题解决
- ORA-12537: TNS: 连接已关闭 错误的解决。(关于sqlnet.ora中实现IP访问控制问题)
- 关于解决 Navicat for mysql 远程连接 mySql数据库10061错误问题
- 关于C++连接数据库的问题
- 关于数据库连接不上 出现错误的问题
- 关于C++模板的链接错误问题
- 很好的QSqlDatabase问题说明,关于连接错误(转)
- c++菜鸟错误笔记3关于传值与引用的问题
- VS2017 c++关于#include 头文件错误问题
- 关于c++连接mysql产生8小时连接失效的问题
- 关于SQL服务器无法启动,报3417错误(附带解决安装SQL COM+目录问题)