|
//一个简单的类模板例子,怎么老是提示List没有定义呢?
#include <iostream>
#include <stdlib.h>
using namespace std;
template <class Type> class List;
template <class T>
class Node{
friend class List<T>;
public:
T _value;
Node<T> *_next;
private:
Node(T value) : _value(value), _next(0) {}
};
template <class Type>
class List{
public:
Node<Type> *front;
Node<Type> *back;
List() : front(0), back(0) {}
~List();
bool isEmpty() {return front == 0;}
void insert(Type value);
bool remove();
};
template<class Type>
List<Type>::~List()
{
if(!isEmpty())
remove();
}
template<class Type>
bool List<Type>::remove()
{
if(isEmpty())
return false;
Node<Type> *ptr = front;
front = front->_next;
delete ptr;
}
template<class Type>
void List<Type>::insert(Type value)
{
if(isEmpty())
front = back = new Node<Type>(value);
Node<Type> *temp = new Node<Type>(value);
back->_next = temp;
back = temp;
}
int main()
{
List list;
getchar();
return 0;
} |
|