c++链接错误——分别编译没有错。可是链接了就有错误。

QQ443254435 2010-12-24 08:09:04
这是什么错误啊!我本来是一个头文件。其余的都是CPP文件。后来嫌乱,把头文件分开了。声明放还在头文件里。实现部分就重新建立了对应的cpp文件。可是就有很多错误了。就下面一种! 分别编译都没有错误。连起来就不行了。请高手们指点一二!!!不胜感激

main.obj : error LNK2001: unresolved external symbol "public: virtual __thiscall List<class student>::~List<class student>(void)" (??1?$List@Vstudent@@@@UAE@XZ)
main.obj : error LNK2001: unresolved external symbol "public: virtual __thiscall List<class Cworker>::~List<class Cworker>(void)" (??1?$List@VCworker@@@@UAE@XZ)
main.obj : error LNK2001: unresolved external symbol "public: class Node<class Cworker> * __thiscall List<class Cworker>::Find(class Cworker)" (?Find@?$List@VCworker@@@@QAEPAV?$Node@VCworker@@@@VCworker@@@Z)
main.obj : error LNK2001: unresolved external symbol "public: void __thiscall List<class Cworker>::PrintList(void)" (?PrintList@?$List@VCworker@@@@QAEXXZ)
main.obj : error LNK2001: unresolved external symbol "public: __thiscall List<class Cworker>::List<class Cworker>(void)" (??0?$List@VCworker@@@@QAE@XZ)
main.obj : error LNK2001: unresolved external symbol "public: void __thiscall List<class student>::MakeEmpty(void)" (?MakeEmpty@?$List@Vstudent@@@@QAEXXZ)
main.obj : error LNK2001: unresolved external symbol "public: class Node<class student> * __thiscall List<class student>::Find(class student)" (?Find@?$List@Vstudent@@@@QAEPAV?$Node@Vstudent@@@@Vstudent@@@Z)
main.obj : error LNK2001: unresolved external symbol "public: void __thiscall List<class student>::PrintList(void)" (?PrintList@?$List@Vstudent@@@@QAEXXZ)
main.obj : error LNK2001: unresolved external symbol "public: __thiscall List<class student>::List<class student>(void)" (??0?$List@Vstudent@@@@QAE@XZ)
main.obj : error LNK2001: unresolved external symbol "public: void __thiscall List<class student>::InsertRear(class Node<class student> *)" (?InsertRear@?$List@Vstudent@@@@QAEXPAV?$Node@Vstudent@@@@@Z)
main.obj : error LNK2001: unresolved external symbol "public: class Node<class student> * __thiscall List<class student>::CreatNode(class student)" (?CreatNode@?$List@Vstudent@@@@QAEPAV?$Node@Vstudent@@@@Vstudent@@@Z)
main.obj : error LNK2001: unresolved external symbol "public: void __thiscall List<class Cworker>::InsertRear(class Node<class Cworker> *)" (?InsertRear@?$List@VCworker@@@@QAEXPAV?$Node@VCworker@@@@@Z)
main.obj : error LNK2001: unresolved external symbol "public: class Node<class Cworker> * __thiscall List<class Cworker>::CreatNode(class Cworker)" (?CreatNode@?$List@VCworker@@@@QAEPAV?$Node@VCworker@@@@VCworker@@@Z)
Debug/kechengsheji.exe : fatal error LNK1120: 13 unresolved externals
...全文
74 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
QQ443254435 2011-03-02
  • 打赏
  • 举报
回复
就是声明和定义的问题,谢谢了!
gules 2010-12-24
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ouyh12345 的回复:]
模板函数或类,声明和定义得放在一个文件里
[/Quote]

是的,模板类及函数的定义必须都在头文件中,不能放入.cpp文件中。
google “模板分离编译”
zhapin123 2010-12-24
  • 打赏
  • 举报
回复
应该是头文件引用错误吧,头文件里声明的实现部分的文件包括在main.cpp文件没有,你把头文件的引用贴出来
ouyh12345 2010-12-24
  • 打赏
  • 举报
回复
模板函数或类,声明和定义得放在一个文件里
lzfbird 2010-12-24
  • 打赏
  • 举报
回复
main.cpp或者main.h对应的是不是少了什么库?

64,687

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧