模板函数的作用就不必多说了。让我们来看看模板函数怎么写。
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(......);
注意:
无论是模板函数还是模板类,声明与实现不可以分开在两个文件来写,只能在同一个文件写。(不要问为什么)