泛型编程是编写与类型无关的通用代码,实现代码复用的重要手段。在 C++ 中,模板(Template)是泛型编程的基础。通过模板,我们可以避免为每种数据类型重复编写类似的逻辑。
一、函数模板
1. 格式与原理
函数模板允许我们定义一个通用的函数,其参数类型和返回值类型可以随调用时的实参自动推导。
基本语法:
template<typename T1, typename T2, ......, typename Tn>
返回类型 函数名 (参数列表)
{
// 函数体
}
注意:
typename是定义模板参数的关键字,也可以使用class,但不能使用struct。- 模板参数的作用范围紧跟在
{}之前。
示例:
template<typename T> void Swap(T& left, T& right) {
T temp = left;
left = right;
right = temp;
}
template<typename T1, typename T2>
T1 Func(const T1& x, const T2& y) {
cout << x << " " << y << endl;
return x;
}
调用方式:
int main() {
int a = 0, b = 1;
double c = 1.1, d = 2.2;
Swap(a, b);
Swap(c, d);
Func(1, 2);
Func(1, );
;
}


