Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1707302
  • 博文数量: 607
  • 博客积分: 10031
  • 博客等级: 上将
  • 技术积分: 6633
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-30 17:41
文章分类

全部博文(607)

文章存档

2011年(2)

2010年(15)

2009年(58)

2008年(172)

2007年(211)

2006年(149)

我的朋友

分类: C/C++

2007-03-04 09:05:17



强类型语言似乎限制了函数的通用化。C++中,模板是一个解决办法。

当函数模板被调用时,对函数实参类型的检查决定了模板实参的类型和值,这个过程叫做模板实参推演(template argument deduction)。

C++支持2种模板编译模式:包含模式(Inclusion Model)和分离模式(Separation Model)。

包含模式:
函数模板的定义放在头文件中,像内联函数那样。

分离模式:
函数模板的声明放在头文件中。函数模板声明和定义的组织方式与非内联函数一样。
分离模式使我们能够很好地将函数模板的接口同其实现分开,但是并非所有C++编译器都支持分离模式。

显式指定模板实参
为避免编译器推演模板实参的类型失败或错误,使用显式指定模板实参。
例如
    template
    T min(T a, T b)
    {
       /*    */
    }

    unsigned int rt =min(32,109);


阅读(710) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~