bool函数_函数模板

ad008a5aaf6dd9001eb7844a111e3715.png

函数模板是我个人认为不在面向对象内容中的一个非常好用的东西,所以我觉得非常有必要和大家一起分享一下。

首先不同于重载函数,重载函数的功能是一组函数他们的参数类型不同,或者参数个数相同,,实现的功能相似,但是本质他们是多个函数

而函数模板则可以实现类型的泛型化,对于模板中函数,在具体运行的过程中依据实际参数的类型生成相应的模板函数。这个过程则被称作模板的实例化。

上面这么多通俗一点的说法就是比如一个函数

int max(int x,int y)

{

  return x>y?x:y;

}

在使用了函数模板以后,int x,int y包括函数类型的int都可以改为其他类型,float,double,bool或者别的,在学过面向对象之后甚至可以使用自己所创建的类型,非常方便。

接下来介绍一下如何写函数模板

template<class T>

T max(T x, T y)

{

 return x>y?x:y;

}

在使用的时候那么直接调用max('a','b'),max(1,2),max(3.3,4,4)就可以了

此外函数模板中所指定的T甚至不需要统一

template<class T1,class T2,class T3>

T1 sum(T2 a,T3 b)

{

  return a+b;

}

但是这样写不知道大家有没有发现一个问题,如果我直接调用sum('a',2)系统他并不知道函数返回值应该是那个类型,因此我们在进行实例化的时候,如果是这样一定要注意制定好类型,在之后的类模板中这也是非常重要的。调用时候应该这样使用

sum<int,char,int>('a',2);就可以了

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值