‘undefined reference to’ 模板类
c++泛型编程时候,由于.h文件中放声明,.cpp里放实现,main里调用,编译时候,就出现这样的问题。
解决方法:
将实现放在.h文件里,即声明实现放在同一个头文件中。
缺点:会导致头文件比较大,加载,编译时候慢。
在.h头文件声明泛型类后,最后显示的实例化几个类。
缺点:用到的类型必须要显示实例化,如果没有枚举到,还是会出上述问题。
template<typename T> class A {};//声明完成 template class A<int>; //显示实例化了int的A类 template class A<string>; //在后面实现时候,int,string的A类因为显示实例化了,所以调用时候不会有上述'undefined reference to class xx'的问题<