在模板类中编写模板成员类参数的当前语法是什么。
这就是我一直想做的事情:
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
答案 0 :(得分:2)
也许当你打电话时:
Node<T> *head;
T不是对象类型,它不知道如何构造它。尝试:
Node<std::string> *head;
或类似的东西。 T不是对象类型,它就像一个变量名,除了它实际上是Node和LinkedList类中的变量类型。