函数模板:
template<class T>
然后定义的时候把要用模板类型的地方类型名改成T,
使用的时候,所有T都要一样,否则,再加一个参数template<class T,class U>
程序运行的时候自动根据传入参数的类型判断T,和一般使用函数一样
也可以在函数名后面注明: function<int>(a);
类模板:
templeate<class T>
1然后声明类的时候把要用模板类型的地方类型名改成T,
2定义成员函数时,每个函数之前都要加template<class T>
3且 class1<T>::function(),这里也要加<T>。
4在main函数文件里,不仅要include .h文件,也要include .cpp文件(类模板的特殊地方)
或者全部写在.h文件里面。
因为模板实例化之前不生成代码
5.mian函数里使用的时候,和以前区别是加了<double>,double是自己要用的T
方法一。new一个对象
MyQueue<double> *p = new MyQueue<double>(4);
方法二。直接定义一个对象
MyQueue<double> a(4);
6。定义模板的时候还可以加非类型参数,即传进去一个值
template<class T, int Q>
使用的时候 MyQueue<double, 5> a(4);这样定义的时候用的Q全部变成5。
7.推荐用typename代替class