带有模板的构造函数问题

时间:2015-05-31 06:57:28

标签: c++ c++11 visual-c++ c++14

以下是我的cpp代码。我已经在同一个cpp文件中写了声明和定义,因为这个代码中有模板,当我有两个单独的头文件和代码文件时,我遇到了一些错误。所以我必须在同一个文件中写一切。不过,我的构造函数声明和定义都有错误。 为什么这会抛出以下错误,是否有一些缺失。

template<class T>
class Linklist
{
public:
Linklist();
Linklist(Linklist<T> & a);
~Linklist();
}     
template<class T>
Linklist<T>::Linklist()
{
}
template<class T>
Linklist::Linklist(Linklist<T> & a) 
{
} 

错误C2244:'Linklist :: {ctor}':无法将函数定义与现有声明定义匹配         'Linklist :: Linklist(Linklist&amp;)'现有声明           'Linklist :: Linklist(Linklist&amp;)'           '链表::链表(无效)'

1 个答案:

答案 0 :(得分:2)

原件:

template<class T>
Linklist::Linklist(Linklist<T> & a) // You forgot something here... see below
{
} 

修正:

template<class T>
Linklist<T>::Linklist(Linklist<T> & a) // <T> is what was missing.
{
} 

类声明也以;结尾。