永发信息网

什么叫函数重载

答案:5  悬赏:70  手机版
解决时间 2021-03-02 15:47
什么叫函数重载
最佳答案
函数重载是一个同名函数完成不同的功能,编译系统在编译阶段通过函数参数个数、参数类型不同,函数的返回值来区分该调用哪一个函数,即实现的是静态的多态性。但是记住:不能仅仅通过函数返回值不同来实现函数重载。

扩展资料重载函数的多义性无法确定,直到遇到函数调用。 此时,将为函数调用中的每个参数生成集,并且可以确定是否存在明确的重载。 这意味着,多义性可保持在您的代码中,直到它们由特定函数调用引发。
参数类型差异
重载函数区分使用不同的初始值设定项的参数类型。 因此,对于重载而言,给定类型的参数和对该类型的引用将视为相同。 由于它们采用相同的初始值设定项,因此它们被视为是相同的。 例如,max( double, double ) 被视为与 max( double &, double & ) 相同。 声明两个此类函数会导致错误。
出于同一原因,对由 const 或 volatile 修改的类型的函数参数(出于重载的目的)的处理方式与基类没有什么不同。
但是,函数重载机制可以区分由 const 和 volatile 限定的引用和对基类型的引用。
参考资料:百度百科——函数重载
全部回答

函数重载是指在同一作用域内,可以有一组具有相同函数名,不同参数列表的函数,这组函数被称为重载函数。重载函数通常用来命名一组功能相似的函数,这样做减少了函数名的数量,避免了名字空间的污染,对于程序的可读性有很大的好处。

函数重载要求编译器能够唯一地确定调用一个函数时应执行哪个函数代码,即采用哪个函数实现。确定函数实现时,要求从函数参数的个数和类型上来区分。
拓展资料:
重载,在一个类定义中,可以编写几个同名的方法,但是只要它们的签名参数列表不同,Java就会将它们看做唯一的方法。简单的说,一个类中的方法与另一个方法同名,但是参数表不同,这种方法称之为重载方法。重载有四种形式的多态:虚函数多态、模板多态、重载与转换。

重载函数是函数的一种特殊情况,为方便使用,C++允许在同一范围中声明几个功能类似的同名函数,但是这些同名函数的形式参数(指参数的个数、类型或者顺序)必须不同,也就是说用同一个运算符完成不同的运算功能。
这就是重载函数。
重载函数常用来实现功能类似而所处理的数据类型不同的问题。
但是重载函数的返回值类型可以不同。

扩展资料:
重载函数(overloaded function)是C++支持的一种特殊函数,C++编译器对函数重载的判断更是C++语言中极为复杂的内容之一。
首先我们先明确一下重载函数的定义:在相同的声明域中的函数名相同的,而参数表不同的,即通过函数的参数表而唯一标识并且来区分函数的一种特殊的函数。
百度百科,函数重载。
int Max (int,int);
            //返回两个整数的最大值;
int Max (const vector  &);
            //返回vector容器中的最大值;
int Max (const matrix &);
            //返回matrix引用的最大值;
麻烦?看来你不懂重载,重载是为了减少麻烦才产生的。
打个比方,你为了要计算两个数的和,写了一个函数,如下:
int intSum(int nA,int nB)
{
return (nA+nB);
}
这个只是计算了两个整形的和,或许你还要写一个计算浮点数和的函数:
float floatSum(float fA,float fB)
{
return (fA+fB);
}
或许你还需要计算一个浮点数和一个整形的和,还需要一个函数:
float float_intSum(float fA,int nB)
{
return (fA+(float)nB);
}
甚至,如果你用C++的话,你还会需要一些计算对象之间的和,等等。。。。
当写了这么多的函数,在实际运用中根据需要选择不同的函数来计算某些类型的和,我想你也记不住这么多函数。用重载吧,只需要记住一个函数名就行了。
/////////////////////////////////////////////////////////////////////////////
//函数Fun_Sum的重载
int Fun_Sum(int A,int B)
{
return (A+B);
}
float Fun_Sum(float A,float B)
{
return (A+B);
}
double Fun_Sum(double A,double B)
{
return (A+B);
}
UINT Fun_Sum(UINT A,UINT B)
{
return (A+B);
}
//等等,可以的话这种重载写数十个也不会重复。
//好了,以后你想要计算某两个类型的和时(可以是不同类型),不需要去想该用哪个计算和的函数,统统调用函数Fun_Sum就行了,至于到底是其中的哪一个函数在被调用,让编译器去伤脑筋吧。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
下列选项中不属于企业股权投资损失确认的相关
朝阳县农村信用合作联社黑牛营信用社地址有知
深情不及久伴的下一句是什么?
女生和男生出去玩.男人抱着女生在身上噌,请
对于没有签看房确认书,和业主私交的客户怎么
谁有带着智能手机闯荡异世界第十集 发给我看
金鹰广告我想知道这个在什么地方
西游记4~7回的主要内容
我的问题能发到官网上吗?
删除掉前男友1年又加回,他加了代表什么
铜陵市泼洒物管理办公室我想知道这个在什么地
中国电信彩铃定制你不打电话已关机你好怎么设
请问各位大仙 怎么知道自己适合供奉哪个财神
我的信用卡6000分了六期,下个月有多少额度啊
电气设计基础知识
推荐资讯
途观l昂科威汉兰达哪个好
刚出生的孩子坐车要不要用汽车儿童安全座椅啊
冉屯新村南院北门怎么去啊,有知道地址的么
手机充值话费,昨天是8月1号,手机没钱了,工
竹叶林地址有知道的么?有点事想过去
传奇补丁怎么安装视频
朋友用我的名字注册了公司,法人代表是我,我
掉鲤鱼用什么食好
描写江阴风景和分俗的语段
我帮老板开小货车载危险物但无危然证车也没危
广西盟展鳄鱼科技开发有限公司怎么去啊,有知
呼吸机瑞思迈和万曼好哪个好
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?