1

我发现了一些关于模板和方法的主题。但我无法弄清楚它在我的场景中是如何应用的。

template <class T>
class SimpleLinkedList {}

假设这是我的模板类,它包含方法:

LinkedNode<T> * next(){};

其中 LinkedNode 也是一个模板,并使用 SimpleLinkedList 模板中的 T 类。

抛出的错误是:

Member reference base type "LinkedNode<T>" is not a struct or union.

现在我知道什么是结构或联合,但我不知道为什么我的方法是错误的。

编辑

错误似乎是完全不同的东西。非易失性存储器。

谢谢黛米。

4

2 回答 2

1

可能您LinkedNodeSimpleLinkedList. 您可以尝试删除<T>. LinkedNode<T> * next(){}这行得通吗?需要更多信息。

于 2012-05-05T09:23:02.473 回答
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.

于 2012-05-05T09:37:09.167 回答