C++模板使用的一点心得
2012-03-21 21:18
225 查看
这两天刚学数据结构,照着老师的代码写了个数组的类模板,然而在运行的时候,却总是报错,说模板类的方法找不到,调试了很久后还是报相同的错误。于是上网查了一些相关资料,最后方法原来是类模板的定义和实现写在了同一个文件中,这对于一般的类来说是没有问题,但对于模板类大多情况下就会报错。C++编程思想中说:模板类很特殊,由template<>定义的任何东西都意味着编译器在当时不为它分配内存空间,它一直处于等待状态,直到被一个模板实例告知,即模板参数是由编译器来替换的。对于这句话我还是不懂它和模板类的定义与实现放在一起有什么关系,希望大牛能指点一下。同时也希望今后遇到和我报错情况一样的人能即时解决问题。
解决办法就是把模板类的定义和实现放在一个文件下。
我的报错情况:
Compiling...
main.cpp
SeqList.cpp
Linking...
main.obj : error LNK2001: unresolved external symbol "public: int __thiscall SeqList<int>::Find(int &)" (?Find@?$SeqList@H@@QAEHAAH@Z)
main.obj : error LNK2001: unresolved external symbol "public: __thiscall SeqList<int>::SeqList<int>(int)" (??0?$SeqList@H@@QAE@H@Z)
Debug/SeqProject.exe : fatal error LNK1120: 2 unresolved externals
执行 link.exe 时出错.
SeqProject.exe - 1 error(s), 0 warning(s)
解决办法就是把模板类的定义和实现放在一个文件下。
我的报错情况:
Compiling...
main.cpp
SeqList.cpp
Linking...
main.obj : error LNK2001: unresolved external symbol "public: int __thiscall SeqList<int>::Find(int &)" (?Find@?$SeqList@H@@QAEHAAH@Z)
main.obj : error LNK2001: unresolved external symbol "public: __thiscall SeqList<int>::SeqList<int>(int)" (??0?$SeqList@H@@QAE@H@Z)
Debug/SeqProject.exe : fatal error LNK1120: 2 unresolved externals
执行 link.exe 时出错.
SeqProject.exe - 1 error(s), 0 warning(s)
相关文章推荐
- django模板使用心得
- 【串口通信二】串口通信使用的一点心得
- 小白教你学习C++(5)函数模板的使用
- C++使用模板、函数指针、接口和lambda表达式这四种方法做回调函数的区别比较
- C++模板的理解与使用
- c++使用心得
- C++ - 非类型模板参数(nontype template parameters) 使用 及 代码
- C++ Vector的使用心得
- Unity5的AssetBundle的一点使用心得
- c++ 模板的使用
- Python的一点使用心得
- 使用dynamic_cast的一点心得
- C/C++使用心得:enum与int的相互转换
- MacBook安装Windows双系统及虚拟机的一点使用心得
- C++ Vector 使用心得
- 关于fctix使用的一点心得
- C++模板使用介绍
- PHP模板Smarty的初级使用方法及心得
- 软件使用一点心得!