#include <stdio.h>
#include <stdlib.h>
template<typename A>
A AddTwo(A a,A b)
{
printf("its defailt.\n");
return a + b;
}
//一般将特化模板函数定义放在缺省模板函数下面。
int AddTwo(int a,int b)
{
printf("its int ####.\n");
return a + b;
}
char AddTwo(char a,char b)
{
printf("its char ####.\n");
return a + b;
}
int main()
{
float a = 10,b = 20;
printf("sum %d.\n",AddTwo(a,b));
int a = 10,b = 20;
printf("sum %d.\n",AddTwo(a,b));
char a = 10,b = 20;
printf("sum %d.\n",AddTwo(a,b));
return 0;
}
AddTwo函数会根据类型自动匹配到对应的特化函数

本文通过一个C++模板函数AddTwo的实现,展示了如何使用模板特化来处理不同数据类型的情况。当函数参数为特定类型(如int或char)时,将调用相应的特化版本,而非通用版本。
3919

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



