今天刚刚编完数据结构中的单链表,其中用到了类模板,发现自己有许多不熟练的地方和普通的基本类型不一样的地方。所以现在记录下来,以便以后的复习与回顾。
模板的定义的关键词是template
1.类模板的定义
template<class T>
class Linklist
{
public:
Linklist();
Linklist(T a[], int i);
~Linklist();
int Length();
T Get(int i);
int Locate(T x);
void Insert(T x, int i);
T Delete(int i);
void Printline();
private:
Node<T> *first=new Node<T>;
};
2.结构体模板的定义,与类模板相似
template<class T>
struct Node
{
T data;
Node<T> *next;
};
3.在类外声明函数方法时同样需要template<class T> 而且在类后需要加数据类型T,例如
template<class T>
Linklist<T>::Linklist() {
first = new Node;
first->next = null;
}
4.结构体模板的声明
对于指针需要申请存取空间
Node<T> *p=new Node<T>;
5.类模板的声明
Linklist<int> m = Linklist<int>(a, 5);
都需要说明数据类型T