以下是我的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;)' '链表::链表(无效)'
答案 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.
{
}
类声明也以;
结尾。