我找到了一些关于模板和方法的主题。但我无法弄清楚它在我的场景中是如何应用的。
template <class T>
class SimpleLinkedList {}
我们假设这是我的模板classe,它包含方法:
LinkedNode<T> * next(){};
其中LinkedNode也是一个模板,并使用SimpleLinkedList模板中的类T.
引发的错误是:
Member reference base type "LinkedNode<T>" is not a struct or union.
现在我知道结构或联合是什么,但我无法弄清楚为什么我的方法是错误的。
修改
错误似乎完全不同。 NVM。
感谢Demi。
答案 0 :(得分:1)
您可能在LinkedNode
中未将SimpleLinkedList
定义为模板。您可以尝试删除<T>
中的LinkedNode<T> * next(){}
。这有效吗?需要更多信息。
答案 1 :(得分:0)
在SimpleLinkedList<T>::next()
的定义中,在解除引用current->next
时需要使用指针语义,因为current
是指针,而不是引用。
LinkedNode<T> * next(){
if (getSize() == 0 || current.next == NULL) return NULL;
return current;
};
更改为:
LinkedNode<T> * next(){
if (getSize() == 0 || current->next == NULL) return NULL;
return current;
};
同样适用于previous
。