函数的重载和模板分析

函数重载:功能相似的几个不同函数,可以组合构建为一个重载函数。比如判断n个数的最大值,求n个数的和。
函数重载注意事项:
1.原则:可以形参不同,也可以返回值不同。但是形参一定不能相同(形参的顺序、类型、个数,否则编译器无法识别采用哪种函数。
2.重载函数的每个函数都需要声明和定义。

//代码举例1:
//求3个整数或2个整数的最大值,下面代码中形参的个数不同,编译器会通过编译。
int max(int a,int b,int c);
int max(int a,int b);
//代码举例2:
//求2个数的和,下面代码中虽然函数返回值不同,但是形参完全一模一样,编译器无法识别采用哪种,不通过。
int sum(int a,int b);
float sum(int a,int b);

函数重载的缺点:需要每个函数都要编写,重复效率低。

函数模板:函数类型和形参类型不具体指定,而用一个虚拟的类型来代表。需要在声明为:
template < typename T >
当参数类型不止一个时,可写为
template < typename T1, typename T2 >

//求2个数的最大值
template <typename T>
T max(T a,T b)
{
	if(a > b)
		return a;
	else
		return b;
}

函数模板的缺点:函数体完全相同,且形参个数和顺序完全相同,否则编译器无法通过。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值