关闭

C++模板使用的一点心得

标签: c++编译器数据结构编程c
129人阅读 评论(0) 收藏 举报
分类:

这两天刚学数据结构,照着老师的代码写了个数组的类模板,然而在运行的时候,却总是报错,说模板类的方法找不到,调试了很久后还是报相同的错误。于是上网查了一些相关资料,最后方法原来是类模板的定义和实现写在了同一个文件中,这对于一般的类来说是没有问题,但对于模板类大多情况下就会报错。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)

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:2652次
    • 积分:60
    • 等级:
    • 排名:千里之外
    • 原创:4篇
    • 转载:2篇
    • 译文:0篇
    • 评论:0条
    文章分类