我得到这个错误很多,我不知道为什么。有人能帮我找到原因吗?
编辑:删除代码
答案 0 :(得分:4)
必须在头文件中定义模板。有关详细信息,请参阅这些常见问题解答:
答案 1 :(得分:3)
将实现(您的方法定义)与类声明一起放入标题中(参见this in the C++ FAQ)。有些编译器支持一个“export”关键字,就像你那样做了,但是它已经被C ++ 0x所取代。
答案 2 :(得分:1)
发生此错误的原因是,您的template
定义对用户代码不可见。模板定义应该在
template<typename T>
void foo (T*);
int main ()
{
foo(1);
}
template<typename T>
void foo (T *p)
{
...
}
// This file can not see the definition of foo