template模板及模板类的实例化

来源:互联网 发布:python 结构体数组 编辑:程序博客网 时间:2024/05/22 06:15

模板template

通常,当我们调用一个函数时,编译器只需要掌握函数的声明。
类似的,当我们使用一个类类型的对象时,类定义必须是可用的,但成员函数的定义不必已经出现。
因此我们将类定义和函数声明放在头文件中,而普通函数和类的成员函数的定义放在源文件中。

模板则不同:
为了生成一个实例化版本,编译器需要掌握函数模板或类模板成员函数的定义。因此,与非模板代码不同,模板的头文件通常即包括声明也包括定义。

template<class T>LinkList<T>::LinkList()  {...}template<class T>LinkList<T>::LinkList(T a[], int n)  {...}//类模板实例化:int a[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };LinkList<int> linkList1;  //无参构造LinkList<int> linkList2(a, 10);  //有参构造

默认情况下,对于一个实例化了的类模板,其成员只有在使用时才被实例化。

在类模板外使用类模板名
LinkList<T>::LinkList(T a[], int n) {...}

0 0
原创粉丝点击