C++提高编程
模板
函数模板
- 语法:
- template
- 用法:
- //自动类型推导
mySwap(a,b);
//显示指定类型
mySwap<int>(a,b);
- //自动类型推导
- 注意事项
- 自动类型推导,必须推导出 一致 的数据类型T,才可以使用
- 模板必须要确定出T的数据类型,才可以使用
- 与普通函数的区别
- 普通函数调用时可以发生自动类型转换(隐式类型转换)
- 函数模板调用时,如多利用了自动类型推导,不会发生隐式类型转换
- 如果利用显示指定类型的方式,可以发生隐式类型转换
- 普通函数和函数模板同时存在,优先调用普通函数 可以用<>强制执行模板函数
- 函数模板也可以发生重载
类模板
template<class NameType , class AgeType = int>
class Person{
public:
Person(Nametype name, AgeType age){
this.m_name = name;
this.m_age = age;
}