C++ 模板基础:函数模板与类模板实战
泛型编程简介
在开发中,我们经常遇到需要处理不同类型但逻辑相同的场景。比如交换两个整数、两个浮点数,甚至两个自定义对象。如果为每种类型都写一遍 Swap 函数,不仅代码冗余,维护成本也高。
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; }
这种'模具填充'的方式就是泛型编程的核心思想:编写与类型无关的通用代码。C++ 中的模板(Template)正是实现泛型编程的基础工具。
一、函数模板
1. 格式与原理
函数模板的基本结构如下:
template<typename T1, typename T2, ..., typename Tn>
返回类型 函数名 (参数列表) {
// 函数体
}
注意,typename 是定义模板参数的关键字,虽然也可以用 class 替代,但通常建议用 typename 以示区分。模板参数的作用域仅限于紧随其后的 {} 块。
下面是一个通用的 Swap 实现:
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;
x;
}


