为什么要用函数模板重载呢?有的时候并非所有的类型都是用相同的算法,为了满足这种需求可以重载常规函数的定义那样重载模板。
下面是一个简单的例子:
#include <iostream>
#include <string>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
template <typename T>
void Swap(T &name,T &age);
template <typename T>
void Swap(T name[],T age[],int id);
template <typename T>
void show(T a[]);
int id=5;
int main(int argc, char** argv) {
//模板1
string age="123";
string name="456";
Swap(name,age);
cout <<"name="<<name<<"age=="<<age<<endl;
//模板2
string name1[5]={"DKFJDLKJFKLD","DK;FKDL;FK;LDK","EORPEORPEOPROE[ORE["};
string age1[5] ={"45","32","56","60","35"};
Swap(name1,age1,id);
show(name1);
show(age1);
return 0;
}
template <typename T>
void show(T a[])
{
for(int i=0;i<id;i++){
cout<<a[i]<<endl;
}
}
template <typename T>
void Swap(T &name,T &age)
{
T temp;
temp=name;
name=age;
age=temp;
}
template <typename T>
void Swap(T name[],T age[],int id)
{
T temp;
for(int i=0;i<id;i++){
temp=name[i];
name[i]=age[i];
age[i]=temp;
}
}
本文深入探讨了C++中函数模板重载的原理与实践,通过具体实例展示了如何根据不同数据类型使用相同的函数名实现不同的功能。重点分析了在处理不同类型数组时的模板函数重载,以及如何利用模板参数实现通用的显示函数。
773

被折叠的 条评论
为什么被折叠?



