一、函数模板与普通函数区别
1、函数模板与普通函数区别
函数模板与普通函数区别 : 主要区别在于它们能够处理的 数据类型数量 和 灵活性 ;
自动类型转换 :
函数模板 不允许 自动类型转化 , 会进行严格的类型匹配...等类型 ;
函数模板 可以接受 任何类型 的参数 , 函数模板在 C++ 编译器 编译时 将类型参数实例化 , 生成对应的 普通函数 ;
灵活性 :
普通函数 对于 不同的 数据类型参数 需要单独定义...a, T b){} ;
函数模板实例化 : 使用函数模板时 , C++ 编译器会根据 实际传入的 参数类型 自动实例化相应的函数 ; 如 : 定义的 T add(T a, T b) 类型的 函数模板..., 所以 如果使用函数模板处理很多类型 , 需要创建很多普通函数实例 , 会导致编译时间增加 , 代码库增大 ;
维护难度高 : 如果错误地使用 函数模板 可能会导致难以查找的错误 , 普通函数 更简单...泛型编程
// 定义的 T 是泛型类型
// 声明了多个泛型, 可以只使用其中的部分类型
// 使用函数模板时 , 显式类型调用 必须 显式指定所有 泛型类型 的实际类型
template <typename