我試圖創建一個雙向鏈表,我得到這個錯誤:錯誤C2440:「=」:無法從「ListNode <T> *」轉換爲「ListNode <T> *」
error C2440: '=' : cannot convert from 'ListNode<T> *' to 'ListNode<T> *'
和我真的不知道爲什麼。有人可以幫助我嗎?
template <class T>
class ListNode
{
private:
//Données membres
T m_Value;
ListNode<T> *m_Next;
ListNode<T> *m_Prev;
public:
//Constructeur
ListNode()
{
m_Value = NULL;
m_Next = NULL;
m_Prev = NULL;
}
ListNode<T>(T _Value)
{
m_Value = _Value;
m_Next = NULL;
m_Prev = NULL;
}
//Accesseurs
T getValue() const
{ return m_Value; }
void setValue(T _Value)
{ m_Value = _Value; }
ListNode<T>* getNext() const
{ return m_Next; }
void setNext(ListNode *_NextNode)
{ m_Next = _NextNode; }
ListNode<T>* getPrev() const
{ return m_Prev; }
void setPrev(ListNode *_PrevNode)
{ m_Prev = _PrevNode; }
};
template <class T>
class List
{
private:
//Données membres
int m_Compte;
ListNode<T> *m_Current;
ListNode<T> *m_Head;
ListNode<T> *m_Last;
...
這是誰造成的錯誤
template <class T>
void operator+=(T _newValue)
{
Where the error is
這條線是有故障的功能。我試圖創建一個新的節點,並影響到當前節點是一個指向ListNode
m_Current = new ListNode<T>(_newValue);
if (!m_Head)
{
m_Head = m_Current;
}
else
{
m_Last->setNext(m_Current);
m_Current->setPrev(m_Last);
m_Last = m_Current;
}
++m_Compte;
return;
}