-3

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

这就是我一直在尝试做的事情:

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
4

1 回答 1

2

也许当你打电话时:

Node<T> *head;

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

Node<std::string> *head;

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

于 2013-01-17T23:14:11.703 回答