第十四课:多参数模板

(一)函数模板可以定义任意多个不同类型的参数
template
<typename T1,typename T2,typename T3>
T1 Add(T2 a,T3 b)
{
return static_cast(a+b);
}

int r = Ass<int ,float,double>(0.5,0.8);
(二)对于多参数函数模板
1:无法自动推导返回值类型
2:可以从左向右部分指定类型参数
//T1 = int, T2 = double,T3 = double
int r1 = Add(0.5,0.8);

//T1 = int, T2 = double,T3 = double
int r2 = Add<int,float>(0.5,0.8);

//T1 = int, T2 = double,T3 = double
int r2 = Add<int,float,double>(0.5,0.8);
工程中将返回值参数作为第一个类型参数

(三)当函数重载遇见函数模板回发生什么?
1:函数模板可以像普通函数一样重载
2:c++编译器优先考虑普通函数
3:如果函数模板可以产生一个更好的匹配,那么选择模板
4:可以通过空模板实参列表限定编译器只匹配模板
int r1 = Max(1,2);

double r2 = Max<限定编译器只匹配函数模板>(0.5,0.8)

小结:
1:函数模板通过具体类型产生不同的函数
2“:函数模板可以定义任意多个不同的类型参数
3:函数模板中的返回值类型必须显示指定
4:函数模板可以像普通函数一样被重载

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值