//list.h
template <typename T>
class cirList
{
public:
int insertEle(const T& item, int idx);
};
//list.cpp
export template <typename T>
int cirList<T>::insertEle(const T& item, int idx)
{
//do something
}
报错:E2316 'cirList<T>::insertEle(ListNode<T> &,int)' is not a member of 'cirList<T>'
只要把&去掉了,编译就不会报错;同样的代码,只要去掉export,在VS2010中也能正确编译,这是不是BCB不支持将模板类型的引用作为参数传递呢?
9 个解决方案
#1
>::insertEle(ListNode<T> &,int)' is not a member of 'cirList<T>'
为什么是ListNode<T>?哪里来的?
为什么是ListNode<T>?哪里来的?
#2
不好意思发错了,提示信息是:
E2316 'cirList<T>::insertEle(const T &,int)' is not a member of 'cirList<T>'
#3
CB肯定是可以将模板的引用或指针作为函数参数的
#4
但是报错了啊.....很奇怪.....
#5
最好把实际的代码部分发上来看看
#6
模板错误经常怪怪的,往往不是在出错的地方进行提示,只是跟出错的内容相关。
#7
把 list.cpp 的内容,放到list.h中,试试看,模板的声明和定义都放在.h头文件中
#8
export 这个特性没哪个编译器支持吧。
模板的所有实现要放在一起,不要分开。
模板的所有实现要放在一起,不要分开。
#9
问题应该还是出在声明和实现没有放在一块上,本来看了篇文章,提到用export可以将模板的声明和实现分开放置,但看来还是得放一块儿
#1
>::insertEle(ListNode<T> &,int)' is not a member of 'cirList<T>'
为什么是ListNode<T>?哪里来的?
为什么是ListNode<T>?哪里来的?
#2
不好意思发错了,提示信息是:
E2316 'cirList<T>::insertEle(const T &,int)' is not a member of 'cirList<T>'
#3
CB肯定是可以将模板的引用或指针作为函数参数的
#4
但是报错了啊.....很奇怪.....
#5
最好把实际的代码部分发上来看看
#6
模板错误经常怪怪的,往往不是在出错的地方进行提示,只是跟出错的内容相关。
#7
把 list.cpp 的内容,放到list.h中,试试看,模板的声明和定义都放在.h头文件中
#8
export 这个特性没哪个编译器支持吧。
模板的所有实现要放在一起,不要分开。
模板的所有实现要放在一起,不要分开。
#9
问题应该还是出在声明和实现没有放在一块上,本来看了篇文章,提到用export可以将模板的声明和实现分开放置,但看来还是得放一块儿