您的位置:首页 > 编程语言 > C语言/C++

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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息