c++ 模板类引入头文件报错

main
clipboard.png

clipboard.png
clipboard.png

clipboard.png

我觉得很奇怪,当我直接引入cpp文件时,不会报错,正常运行,或者我不单独写一个类文件,直接在main文件中写,也没有问题,为啥我直接引入hpp头文件时,就报错呢?

阅读 4.9k
2 个回答

模板类是根据不同的type来编译多份的.o文件,根据需要链接
而这做法的根本原因是:C++和C一样是静态编译语言,不能动态解析
解决办法:
全部写到头文件里面即可,如果还不行,感觉与以往的.c与.h文件分离有违背规范,可以参考stl做法
相反,普通的class是可以将声明与实现分类的
因为普通的class仅仅是针对一个type,不需要编译多份.o文件。
望采纳谢谢啦

  1. 模板尽量还是不要分离写
  2. 针对你的问题,其中最简单的解决办法是main.cpp里面#include"TemplateArray.cpp"
  3. 或者把全部的实现都放在TemplateArray.hpp
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题