一、函数模板_引入
1.C++里面模板分为两种 1.函数模板 2.类模板
2.所谓模板就是为了让我们节省代码 对于相似的代码我们可以重复使用
3.把类型作为参数来定义一个函数 就是所谓的函数模板template<typename T>
4.模板函数一般不支持隐式类型转换 但是数组在模板里面可以隐式转换为指针 指针可以消除长度不一样的问题
5.把可读可写的变量传到参数是const的模板函数是可以的,但是不能将一个const传到参数是可读可写的模板函数
6.在传参的时候要分辨出 引用和指针的差别 两个数组如果长度不一样 如果是引用的情况两个数组的类型不一样 如果是指针这两个数组的类型就是一样的 例如:char[3] 和 char[4] 两个引用是完全不一样的 但是都是指针的情况就都是char * ,这种情况就都是一样的
二、函数模板_重载
1.选择调用哪一个模板函数的规则是:优先选择普通函数
2.有多个普通函数 匹配度一样的情况就会出现二义性错误
3.同为模板函数或者普通函数 要选择出更特化(参数的匹配更加特殊更加具体更加细化)的模板函数
三、高级编程_类模板
1.类重载也称为类定做