泛型编程基础
在 C++ 开发中,我们经常遇到需要处理不同类型数据的场景。比如交换两个变量的值,如果分别写 int、double、char 的函数重载,代码量会迅速膨胀且难以维护。
void Swap(int& left, int& right) {
int temp = left; left = right; right = temp;
}
void Swap(double& left, double& right) {
double temp = left; left = right; right = temp;
}
void Swap(char& left, char& right) {
char temp = left; left = right; right = temp;
}
这种重复劳动正是模板存在的意义。就像模具一样,填入不同的类型参数,编译器就能生成具体的代码。泛型编程就是编写与类型无关的通用代码,而模板是它的基石。
一、函数模板
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 {
cout << x << << y << endl;
x;
}



