模板函数与模板类

模板函数的作用就不必多说了。让我们来看看模板函数怎么写。

template<typename T>void Init();

template是告诉编译器,我要开始泛型编程了,你不要随便给我报错。

也可以写成template<class T> void Init();

这两句声明是一样的,都是声明一个模板函数。

 

模板类与模板函数类似。

语法是:

template<typename T>

class MyClass

{

public:

void Output(T t){......}

void Input(T *t);

};

 

template<typename T>

void MyClass<T>::Input(T *t){......}

模板类的成员函数有两种写法,第一种是内联函数。直接在声明语句后面写函数体。

另外一种写法是在类外部实现函数体,则需要显示的声明为模板。

 

调模板函数或模板类时,都需要显式的告诉编程器类型

但是调用模板类的成员函数时不再需要显式的告诉编译器函数类型。只要告诉模板类的类型就可以了。

void main(){

Init<int>(......);

MyClass<int> my;

my.Output(......);

注意:

  无论是模板函数还是模板类,声明与实现不可以分开在两个文件来写,只能在同一个文件写。(不要问为什么)

 

posted @ 2017-08-03 22:32  LandyTan  阅读(206)  评论(0编辑  收藏  举报