带有模板类成员的C ++模板类

时间:2013-01-17 22:35:41

标签: c++ class templates

在模板类中编写模板成员类参数的当前语法是什么。

这就是我一直想做的事情:

template <class T>
    class Node
    {
    public:
        Node(); // constructor 
        Node(const Node<T> &);           // copy constructor 
        ~Node();             // destructor
        T value;
        Node *next;
    };


template <class T> 
class Linked_list
{
public:
    Linked_list(); // constructor 
    Linked_list(const Linked_list<T> &); // copy constructor 
    ~Linked_list();             // destructor
    T pop();
    void push(T value);
    T top();
    bool is_empty();
    void clear();

private:
    Node<T> *head; // COMPILER ERROR
};

为什么这是编译器错误?

Node<T> *head; // COMPILER ERROR

1 个答案:

答案 0 :(得分:2)

也许当你打电话时:

Node<T> *head;

T不是对象类型,它不知道如何构造它。尝试:

Node<std::string> *head;

或类似的东西。 T不是对象类型,它就像一个变量名,除了它实际上是Node和LinkedList类中的变量类型。