当前位置:   article > 正文

模板类出现undefined reference或无法解析的外部符号错误_类模板 继承 undefined reference

类模板 继承 undefined reference

今天使用模板类创建双向循环链表时碰到了一个大坑。按照一般思维,将类的声明放在.h文件中,将函数功能的实现及定义放在.cpp文件中。代码编写完成后调试,却碰到了undefined reference to...(在VS中报错无法解析的外部符号...)

在网上查了半天才知道,原来是模板类的问题。对于普通的类,即使声明和定义分别位于.h和.cpp文件,在main.cpp中只需要把类的头文件#include命令包含就行了;但对于模板类,由于模板类的实现不是函数,因此cpp执行文件不能单独编译。也就是说,编译器不能通过h头文件来找到并且编译对应的cpp执行文件。

解决办法有两种: 
1. 把模板类的定义也放在头文件中,见代码中Vector.h部分被注释的代码段 
2. 如果实在想把模板类的声明和定义(实现)分开,则需要在main.cpp中用#include命令将模板类的cpp文件包含进来

参考自使用Dev C++编译C++工程时出现undefined reference 错误

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/88854
推荐阅读
相关标签
  

闽ICP备14008679号