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

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/08 20:35:05
函数模板的具体化有什么意义吗?
xSn@VU8odB㝞=LxZH=J}&; Qx^Ohwhs+!XY""Oiȓl.u-Co0=S?n"Ǒv1OĨ+١.ޣrꋍ ⓚpqĜ\bd5/rĐ!\5d\;JK;Eqɭ(b@ !M(5?-[4 DqǼ zcqy2:@ 5|,"+7Ph#\J0!. ļ&+Q/m36K SᏄ]iЙV=

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

函数模板的具体化有什么意义吗?
比如,你定义了一个函数模板
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);
}
这样,在编译链接时这个函数就屏蔽掉了模板,自动采用定义的函数.
以上就是函数模板具体化的作用和方法,如有不明白,可继续追问