C ++ -Template类,返回模板类型的方法

时间:2012-05-05 09:15:14

标签: c++ templates methods return-type

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

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。

2 个答案:

答案 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