函数模板实例

函数模板实例

这是值得考虑一下如何模板函数的实现在C + +,因为未来的教训将关闭一些这些概念。原来,C++不编译模板函数直接。相反,在编译的时候,当编译器调用一个函数模板,它复制的模板功能,并与实际类型代替模板类型参数!与实际类型的函数被调用函数模板实例。

让我们来看看这样一个例子看看。首先,我们有一个模板函数:

1
2
3
4
5
template < typename Type> // this is the template parameter declaration
Type max(Type tX, Type tY)
{
     return (tX > tY) ? tX : tY;
}
编译你的 程序时 编译器 调用一 模板函数
1
int nValue = max(3, 7); // calls max(int, int)
编译器说,“哦,我们想叫马克斯(int,int)”。 编译器 函数模板 创建 模板的实例 最大 (int int)
1
2
3
4
int max( int tX, int tY)
{
     return (tX > tY) ? tX : tY;
}

现在这是一个“正常”功能,可以编译成机器语言。

现在,让我们说以后在你的代码,你叫max()再次使用不同的类型:

1
double dValue = max(6.34, 18.523); // calls max(double, double)
C++ automatically creates a template instance for max(double, double):
1
2
3
4
double max( double tX, double tY)
{
     return (tX > tY) ? tX : tY;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值