模板:
支持参数多态化的工具。一般用于类型的参数化使用,提高代码的复用性和可维护性。
1.函数模板
对参数的类型进行模板化,来进行对函数内的的函数体需要的部分进行赋予相同类型。
格式:
template <class 类型参数1,....... ,class 类型参数 n>
类型(或者类型参数) 函数名(形参列表)
{
函数体
}
** <>中的 class 可以用typename 来代替,两者作用相同, 没有区别
<>里的都统称为 模板形参
应用举例:
一般的时候 电脑都会自动识别函数的参数类型,所以<>可以有 也可以不写
此处没有<类型> 但是依旧正常显示了。但是 一般省略的场景都是 在函数的参数中所有参数的类型都一致,如果参数中 有不一致的时候,则不能省略<类型>
例如
add(1.5,5);此处就是一个double ,一个int 型;此时<>中的类型不能省略 不然就会报错。
2.类模板
也和函数模板差不多,但是唯一不同的是 他是在给类加入的类型参数,
顾名思义,给类加入一个参数模板
template <class 参数1, … , class 参数n >
class 类名
{
类型参数 成员变量
public:
成员函数
};
例如: