声明泛型 , 后面跟着 返回类型 , 函数名 , 参数列表 , 函数体 , 等内容 , 在 函数的 参数列表 返回类型 中可使用 声明的 泛型类型 , 如 : T add(T..., 所以 如果使用函数模板处理很多类型 , 需要创建很多普通函数实例 , 会导致编译时间增加 , 代码库增大 ;
维护难度高 : 如果错误地使用 函数模板 可能会导致难以查找的错误 , 普通函数 更简单..."iostream"
using namespace std;
// 使用 template 关键字 声明函数模板
// 告诉 C++ 编译器 开始使用 泛型编程
// 定义的 T 是泛型类型...// 声明了多个泛型, 可以只使用其中的部分类型
// 使用函数模板时 , 显式类型调用 必须 显式指定所有 泛型类型 的实际类型
template
T add(T a,..., 不会进行 类型转换 ;
//
// 如果 符合 普通函数类型参数要求 , 优先调用普通函数 ;
// 如果 没有 符合要求的 普通函数 , 则查看 模板函数 能否匹配 ;
// 如果 模板函数