中国中信集团总经理:我这个单链表类怎么在主程序中初始花对象

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/03 10:23:43
#include<iostream.h>
template<class Type> class List;
template<class Type> class ListNode
{
friend class List<Type>;
public:
ListNode();
ListNode(Type item);
private:
Type data;
ListNode<Type> *link;
};
template<class Type> class List
{
public:
List(){last=first=new ListNode();}
List(Type value){last=first=new ListNode<Type> (value);}
~List();
private:
ListNode<Type> *first,*last;
};
template<class Type> ListNode<Type>::ListNode(Type item)
{
data=item;link=NULL;
}
void main()
{
}

老大,好几处地方只定义没有实现叫编译器如何让你通过。修改如下:
#include<iostream.h>

template<class Type> class List;

template<class Type> class ListNode
{
friend class List<Type>;
public:
//下面,不定义具体内容需要加上 {}
ListNode() {};
ListNode(Type item);
private:
Type data;
ListNode<Type> *link;
};

template<class Type> class List
{
public:
//由于ListNode是模版类,需要添加上模版如下:
List(){last=first=new ListNode<Type>();}
List(Type value){last=first=new ListNode<Type> (value);}
//析构函数也是一样,不定义具体内容需要加上 {}
~List(){};
private:
ListNode<Type> *first,*last;
};

template<class Type> ListNode<Type>::ListNode(Type item)
{
data=item;link=NULL;
}
void main()
{
//在Main中的定义 List 对象很简单,如下:
List<int>list;
}