作者:翁向军_943 | 来源:互联网 | 2023-10-13 01:13
函数模板
用函数模板解决:
模板<类类型参数1&#xff0c;类类型参数2&#xff0c;.....>
返回值类型模板名&#xff08;形参表&#xff09;
{
函数体
};
template void Swap(T & x,T & y){ T tmp &#61; x; x &#61; y;y &#61; tmp; }
函数模板重载&#xff1a;
函数模板可以重载&#xff0c;只要它们的形参表或类型参数表不同即可.model
{//类型参数表
void print&#xff08;T1 arg1&#xff0c;T2 arg2&#xff09;//形参表
cout <
}
template
void print&#xff08;T arg1&#xff0c;T arg2&#xff09;{
cout <
}
template
void print&#xff08;T arg1&#xff0c;T arg2&#xff09;{
cout <
}
类模板&#xff1a;
在定义类的时候&#xff0c;加上一个/多个类型参数。在使用类模板时&#xff0c;指定类型参数应该如何替换成具体类型&#xff0c;器编译据此生成相应的模板类。
类模板的定义
template <class类型参数1&#xff0c;类类型参数2&#xff0c;.......> //类型参数表
类类模板名 {
成员函数和成员变量
};
或&#xff1a;
templatetemplate <typename类型参数1&#xff0c;typename类型参数2&#xff0c;.......> //类型参数表
class类模板名{
成员函数和成员变量
};
用类模板定义对象的写法&#xff1a;
类模板名<真实参数类型表>对象名&#xff08;构造函数实参表&#xff09;;
编译器由类模板生成类的过程叫类模板的实例化。由类模板实例化得到的类&#xff0c;叫模板类。
同一个类模板的两个模板类是不兼容的