赋值运算符链表c++
Assignment operator linked list c++
我正在尝试用 C++ 编写链表 class 的赋值运算符。我得到的错误是 "head" 未声明,但我不确定应该在哪里声明它。它可以毫无问题地用于其他功能。另一个错误说我对 "this" 的使用无效。
template <class T>
SortedLinkList<T>& operator=(const SortedLinkList<T> & otherList)
{
if(&otherList != this) {
Node<T> temp = head;
while(temp->getNext() != NULL) {
head = head -> getNext();
delete temp;
temp = head;
}
count = 0;
temp = otherList.head;
while(temp != NULL) {
insert(temp);
}
}
return *this;
}
this
指针不可用,因为您的函数签名与成员定义不相似,您缺少签名的类型范围解析部分:
template <class T>
SortedLinkList<T>& operator=(const SortedLinkList<T> & otherList)
应该是:
template <class T>
SortedLinkList<T>& SortedLinkList<T>::operator=(const SortedLinkList<T> & otherList)
我正在尝试用 C++ 编写链表 class 的赋值运算符。我得到的错误是 "head" 未声明,但我不确定应该在哪里声明它。它可以毫无问题地用于其他功能。另一个错误说我对 "this" 的使用无效。
template <class T>
SortedLinkList<T>& operator=(const SortedLinkList<T> & otherList)
{
if(&otherList != this) {
Node<T> temp = head;
while(temp->getNext() != NULL) {
head = head -> getNext();
delete temp;
temp = head;
}
count = 0;
temp = otherList.head;
while(temp != NULL) {
insert(temp);
}
}
return *this;
}
this
指针不可用,因为您的函数签名与成员定义不相似,您缺少签名的类型范围解析部分:
template <class T>
SortedLinkList<T>& operator=(const SortedLinkList<T> & otherList)
应该是:
template <class T>
SortedLinkList<T>& SortedLinkList<T>::operator=(const SortedLinkList<T> & otherList)