码迷,mamicode.com
首页 > 其他好文 > 详细

编写template时遇到undefined reference to

时间:2014-12-10 22:44:26      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:style   http   io   ar   sp   on   文件   bs   ad   

  具体情况是,没有把 模板类中函数的定义写在相应的.h文件中

  参考:http://stackoverflow.com/questions/8752837/undefined-reference-to-template-class-constructor

  我的理解:

  像之前一样把函数声明和定义分离,却遇到了很奇怪的错误。Google之后才知道:模板类只是告诉了编译器如何去生成类,并没有生成类,在编译main.cpp的时候,生    成List<QUADPTR>类时,其中的函数因为在list.h中没有具体的定义,都没有生成,而在编译list.cpp时,编译器并不知道要生成哪个类,并没有生成例如push_back等函数,这导致在连接的时候,List<QUADPTR>::push_back并没有相应的实现。解决方法有两个,一个是把定义写在.h文件中,这样编译main.cpp时,由于include.h,是会生成具体的函数的,另一个方法是在list.cpp文件中告诉编译器要生成的类,template class List<QUADPTR>

编写template时遇到undefined reference to

标签:style   http   io   ar   sp   on   文件   bs   ad   

原文地址:http://www.cnblogs.com/gemmeg/p/4156369.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!