模版函数

一、函数模版
1、概念:
C++提供了函数模板(function template)。
所谓函数模板,实际上是建立一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟的类型来代表。
这个通用函数就称为函数模板。
凡是函数体相同的函数都可以用这个模板来代替,不必定义多个函数,只需在模板中定义一次即可。
在调用函数时系统会根据实参的类型来取代模板中的虚拟类型,从而实现了不同函数的功能。
这里写图片描述

2、定义方式
//声明Template
//替换参数类型Func(T a)

3、调用
(1)自动数据类型推导
func(a);
(2)显示类型调用
Func(a);

二、函数模版遇上函数重载
1、区别:
普通函数可以自动进行隐性转换,而模版函数不可以;
例如:
普通函数:void print(int a,int b)
模版函数:void Myprint(T a,T b)
Main()
{
Char a = ‘a’;
Int b = 10;
//分别用两种函数混合调用
Print(a,b); 结果65,10,字符自动转换成int类型
Myprint(a,b)//编译出错,不让通过;
}

2、模块函数重载
首先知道模版函数会和普通函数一样被重载,所以当一个普通函数遇到一个模版函数的时候也是重载
(1)编译器默认先调用普通函数;
(2)如果模版函数产生一个跟好的匹配,那么会调用模版函数
(3)想调用模版函数的话就模版实参列表的语法来让编译器只调用模版函数func<>(a);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值