単体リンクリストを使用するプログラムのヘッダーファイルがあります。元々ノードに格納されていたデータは整数でしたが、テンプレートクラスを使用しようとすると、NodeクラスとAnyListクラスをテンプレートクラスに変換しようとしました。しかし、私がコンパイルすると、 "ノード":クラステンプレートの使用にはテンプレート引数リストが必要です "というエラーメッセージが表示されます。テンプレートクラスの例を見ましたが、2つを作ろうとしているので混乱があります1つのヘッダファイルでテンプレートクラス。"クラステンプレートの使用にはテンプレート引数リストが必要"と複数のクラスがあります
#ifndef ANYLIST_H
#define ANYLIST_H
#include<iostream>
#include <string>
using namespace std;
template <typename T>
class Node
{
public:
Node() : data(0), next(NULL) {}
Node(T& theData, Node *newNext) : data(theData), next(newNext){}
Node* getNext() const { return next; }
T getData() const { return data; }
void setData(T& theData) { data = theData; }
void setNext(Node *newNext) { next = newNext; }
~Node(){}
private:
T data;
Node *next; //pointer that points to next node
};
template <typename T>
class AnyList
{
friend ostream& operator<<(ostream& out, const AnyList<T>& theList);
public:
AnyList();
void insert(const T& elem);
int getNumOfElem() const;
void destroyList();
~AnyList();
private:
Node *first;
int count;
};
#endif
これらの例では、テンプレートの実装が完全にヘッダーファイル内に存在する必要があることにも言及していますか? – StoryTeller