1

テンプレートとメソッドに関するトピックをいくつか見つけました。しかし、それが私のシナリオにどのように適用されるかを理解することはできません。

template <class T>
class SimpleLinkedList {}

これが私のテンプレートクラスであり、メソッドが含まれていると仮定しましょう。

LinkedNode<T> * next(){};

LinkedNodeもテンプレートであり、SimpleLinkedListテンプレートのクラスTを使用します。

スローされるエラーは次のとおりです。

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

これで、構造体または共用体が何であるかはわかりましたが、私の方法が間違っている理由がわかりません。

編集

エラーはまったく違うもののようでした。NVM。

デミありがとう。

4

2 に答える 2

1

おそらくLinkedNode、でテンプレートとして定義していませんSimpleLinkedList<T>で削除してみてくださいLinkedNode<T> * next(){}。これは動作しますか?より多くの情報が必要です。

于 2012-05-05T09:23:02.473 に答える
0

の定義では、参照ではなくポインタとしてSimpleLinkedList<T>::next()間接参照するときに、ポインタセマンティクスを使用する必要があります。current->nextcurrent

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 に答える