永发信息网

什么情况下使用重载函数?什么情况下使用函数模板?

答案:2  悬赏:50  手机版
解决时间 2021-03-31 08:46
什么情况下使用重载函数?什么情况下使用函数模板?
最佳答案
函数重载,是指函数名称相同,参数个数,或者参数类型不同。
函数模板,是指函数名称相同,参数个数相同,函数体也相同,仅仅参数类型不同。
从上面定义来看,可以用函数模板实现的,肯定能用函数重载来实现,反之则不成立。
例如两个变量比较大小的功能。函数对于整形变量,和double变量可以用重载实现。
int compare(int a, int b)
{
if(a > b)
return 1;
else if(a == b)
return 0;
else
return -1;
}
int compare(double a, double b)
{
if(a > b)
return 1;
else if(a == b)
return 0;
else
return -1;
}
这种情况也可以用函数模板实现,因为上面两个函数的函数体完全相同。
int compare(T a, Tb)
{
if(a > b)
return 1;
else if(a == b)
return 0;
else
return -1;
}
但是明显这个时候用函数模板更好,因为避免了代码重复。在应用中体会两者的区别吧~
全部回答
函数模板一般用于算法抽象:操作一致,仅仅是数据类型不同的用模板
如果仅仅只是接口一致但是数据类型和操作不同可以使用重载,当然有时也用模板的特别化
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
BOSS最终形态里,黄金弗利沙和宇宙扎马斯,哪
弱弱的提个关于圣堂刺客的问题,请高手帮忙解
which how shall有什么区别
vivoY33系统升级
钢琴左手怎么伴奏啊!最好简单又好听!谢谢
在东莞东坑镇怎么样坐车回到广州增城区
有伴的意思
河北易胜合互联网是传销吗
硅酮结构密封胶和硅酮建筑密封胶有什么区别?
在美国新罕布什尔的一个农场, 有一个名叫丹
流放之路 藏身处 怎么移动传送阵
LED隧道灯为什么要这样排列
c# EF 数据库连接
组词前面是括号后面是成长该填什么呢
我有一个45KW的电机需要多大平方线?
推荐资讯
陆依萍和陆振华一块骑马是哪一集
练习鬼步舞有什么要点
235-(456+304)÷4等于多少,算式怎么列
1932爱情什么意思
民安丧事服务地址有知道的么?有点事想过去
直径25厘米管子6米长能装多少水
我的电脑硬盘分区突然没了,怎么办?
有一辆播种机,每分钟行驶80米,播种的宽度是
利川火车站附近有什么可玩的地方
苹果5se nlxn2ch/a是做什么意思
jquery怎么增加div高度的代码?
股票里,成交里有记录,但是持仓里没有记录,
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?