首页 > 代码库 > 编写template时遇到undefined reference to
编写template时遇到undefined reference to
具体情况是,没有把 模板类中函数的定义写在相应的.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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。