注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

还东国的博客

行之苟有恒,久久自芬芳

 
 
 

日志

 
 

函数模板的特化  

2013-04-25 22:08:09|  分类: C++(VC)编程 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

函数模板的特化

上面讲了类模板的特化,现在说一下函数模板的特化,函数模板有一点儿与类不同,就是它没有偏特化这一说。但可以通过函数模板的重载来达到近似的效果。

但是他有显示特化(或者说显示实例化),还有显示具体化,当然还有标准的模板使用即隐式的转换,前面的类模板中,没有对隐式实例说明,因为大家目前一般都是使用这种方法所以就不再赘述了。

显示实例化:

template<class Type> Type sum( Type op1, int op2 ); //{return op1;}//可以声明与实现一起

template int* sum< int* >( int*, int ); //模板函数显示实例化---只需要声明

其格式如下:

template typename function<typename>(argulist);

显示具体化:

template<> int* sum< int* >( int*, int );

//类:template class classname<typename>;

//模板函数显示具体化

template<> int* sum( int*a, int b )

{

         return a;

}

其格式如下:

template<> typename function<typename>(argu_list){...};

//类:template<> class classname<typename>{...};

这里面顺便把类的两种情况也写上了。算是对上文的一个小小的补充。

但有一个不明白的地方,就是显示的实例化的作用是什么。

2016-05-04,看一下“对特化的新理解”和“模板的显示实例化和全特化”,回答了这个问题。
  评论这张
 
阅读(939)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017