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

问题描述:

函数模板的具体化有什么意义吗?
1个回答 分类:综合 2014-10-17

问题解答:

我来补答
比如,你定义了一个函数模板
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);
}
这样,在编译链接时这个函数就屏蔽掉了模板,自动采用定义的函数.
以上就是函数模板具体化的作用和方法,如有不明白,可继续追问
 
 
展开全文阅读
剩余:2000