函数模板(Function Template)是 C++ 中实现泛型编程的核心工具,它允许编写与类型无关的通用代码。通过函数模板,你可以定义一个函数蓝图,编译器会根据实际使用的类型自动生成具体的函数代码。
基本概念
1. 模板定义
// 定义一个函数模板
template <typename T>
// T 是类型参数
T max(T a, T b) {
return (a > b) ? a : b;
}
// 或者使用 class 关键字(和 typename 等价)
template <class T>
T min(T a, T b) {
return (a < b) ? a : b;
}
2. 模板使用
int main() {
int i1 = 10, i2 = 20;
double d1 = 3.14, d2 = 2.71;
char c1 = 'A', c2 = 'B';
// 编译器自动推导类型并生成具体函数
cout << max(i1, i2) << endl; // 生成 max<int>(int, int)
cout << max(d1, d2) << endl; // 生成 max<double>(double, double)
cout << max(c1, c2) << endl; // 生成 max<char>(char, char)
return 0;
}
模板参数
1. 类型参数
< T>
{
cout << value << endl;
}
< T1, T2>
{
a + b;
}

