"使用类模板需要模板参数列表"和多个类



我有一个使用单链表的程序的头文件。最初存储在节点中的数据是整数,但是,为了使用模板类,我尝试将Node类和AnyList类转换为模板类;然而,当我编译时,出现了一个错误消息,说"'Node ':使用类模板需要模板参数列表"。我已经看到了模板类的例子,但是有一点混乱,因为我试图在一个头文件中创建两个模板类。

#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

简单地说,Node<>List<>是不同的模板。因此需要将模板参数从List转发到Node

代替

Node *first; 

Node<T> *first;

相关内容

  • 没有找到相关文章

最新更新