您的位置:首页 > Web前端

编写template时遇到undefined reference to

2014-12-10 21:41 162 查看
  具体情况是,没有把 模板类中函数的定义写在相应的.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>。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐