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

发布于 2022-09-06 10:37:23 字数 674 浏览 19 评论 0

main
clipboard.png

clipboard.png
clipboard.png

clipboard.png

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

待天淡蓝洁白时 2022-09-13 10:37:23

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

貪欢 2022-09-13 10:37:23
  1. 模板尽量还是不要分离写
  2. 针对你的问题,其中最简单的解决办法是main.cpp里面#include"TemplateArray.cpp"
  3. 或者把全部的实现都放在TemplateArray.hpp
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文