我正在编写与链表相关的代码,我想模拟整个程序。这是我写的:
template<typename T>
class Node
{
public:
T data;
Node* next;
Node(){};
};
class List{
public:Node<T>* head;
List() { head= NULL; } //constructor
为此,它适用于我的其他功能。但是,我也在尝试编写一个函数副本,它将列表复制到另一个。
List Copy(List copyme){
List<T> x;
x = new List<T>;
Node<T>* current = copyme.head;
while (current != NULL){
x.ListInsertHead(current->data);
current = current->next;
}
x.ListReverse();
return x;
};
我收到有关模板化课程的错误,在这种情况下我应该写些什么?谢谢。错误只是未声明的标识符,这是因为我错误地模板化了。
答案 0 :(得分:0)
试试这个:
template<typename T>
class Node
{
public:
T data;
Node* next;
Node(T val){ data = val; }
};
template <typename T>
class List
{
public:
Node<T>* head;
List() { head= NULL; } //constructor
};
template <typename T>
List <T> Copy(List <T> copyme)
{
List<T> x;
x = new List<T>;
Node<T>* current = copyme.head;
while (current != NULL){
x.ListInsertHead(current->data);
current = current->next;
}
x.ListReverse();
return x;
}