函数模板的具体化有什么意义吗?

来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/19 20:10:25
函数模板的具体化有什么意义吗?函数模板的具体化有什么意义吗?函数模板的具体化有什么意义吗?比如,你定义了一个函数模板templatevoidfunc(constT&t){dosomething(t);

函数模板的具体化有什么意义吗?
函数模板的具体化有什么意义吗?

函数模板的具体化有什么意义吗?
比如,你定义了一个函数模板
template
void func(const T& t)
{
dosomething(t);
}
但是,当T是整数的时候你不想dosomething,而是想killsomeone,那就需要具体化了.
具体化有2种形式,一种是显式具体化
即定义一个特殊类型的实现
template
void func(const int& t)
{
killsomeone(t);
}
这样,除了int型以外,其他类型仍然按照dosomething来运行
另一种方式是写一个函数来屏蔽模板
比如,定义如下
void func(const int& t)
{
killsomeone(t);
}
这样,在编译链接时这个函数就屏蔽掉了模板,自动采用定义的函数.
以上就是函数模板具体化的作用和方法,如有不明白,可继续追问