我正在尝试为链表编写一个运算符重载,它将采用 + 的右侧并将该链表连接到左侧的列表。
类声明:
List<T>& operator+(const List<T>& right);
方法:
template <typename T>
List<T>& List<T>::operator+(const List<T>& right){
List result(*this);
while(right->next != NULL){
result->push_back(right->data);
}
return list;
}
司机:
mylist + mylist2; //both list objects already created.
错误信息:
Error: The operation "List<std::string>* + List<std::string>*" is illegal.
我不确定为什么会出现编译时错误。我的逻辑是获取右侧列表的每个元素,然后将其简单地推到左侧列表的后面。想法?