模板:数据的整体归类化,不能出现具体数据类型。
而且函数模板的参数实例化时,必须同一类型。
1.函数模板:
template<class/typename 虚类名>
返回类型 函数名(参数表)
{
//函数体
}
1.5.函数模板的实例化:
函数名(具体并相同类型的实参表)
2.类模板:
template<class 虚类名>
class 类名
{
};
2.5类模板的实例化:
类名 <对应实类型> 对象名;
3.函数模板的特化:
前提:在一个已有的函数模板下,特化一个与之匹配的模板
template<>
返回值类型 函数名<特化类型>(对应参数列表)
{
}
//其中,第二个<>中括号以及其中内容在一定条件下可以省略。
3.5.类模板的特化:
前提:在一个已有的完整的类模板下,可以特化另一个类模板,并且其中的成员函数也需要跟着特化一遍。
template<>
class 类名<特化类型>
{
特化的数据和功能。
}
template<>
返回值类型 类名<特化类型>::函数名(参数表)
{
}
4.类模板的部分特化:
前提:依然是已经存在完整的类模板
template <没有特化的部分虚类名>
class 类名
{
函数名(具体数据类型 x1,虚类名 x2)
};