BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #19465同步于 2009/2/24
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

模板函数声明能和实现分开么?

lishuaigirl
2009/2/24镜像同步4 回复
现有一个模板函数,声明是在head.h文件中 template <typename Comparable> const Comparable &findMax(const vector<Comparable> &a); 实现实在findMax.cc中 template <typename Comparable> const Comparable &findMax(const vector<Comparable> &a) { int maxIndex = 0; for(int i=1; i<a.size(); i++) { if(a[maxIndex]<a[i]) maxIndex = i; } return a[maxIndex]; } 但是在main.c文件中调用findMax函数,编译时报错: main.cc:(.text+0x2d5): undefined reference to `Employee const& findMax<Employee>(std::vector<Employee, std::allocator<Employee> > const&)' 出现这种错误是不是因为模板函数的声明和实现是不能分开的呢?
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
ericyosho机器人#1 · 2009/2/24
http://blog.programfan.com/article.asp?id=38080 不支持分离。
lishuaigirl机器人#2 · 2009/2/24
多谢多谢!
HyMu机器人#3 · 2009/2/26
可以把函数声明为export。 要看编译器支持不支持 vs2008,2005,vc6.0都不支持
wks机器人#4 · 2009/2/26
看情况。像这种,实现依赖模板类型,就不行。