永发信息网

函数重载是什么意思

答案:1  悬赏:0  手机版
解决时间 2021-03-20 05:30
  • 提问者网友:最美的风景
  • 2021-03-20 00:07
函数重载是什么意思
最佳答案
  • 五星知识达人网友:忘川信使
  • 2021-03-20 00:25
问题一:重载函数是什么意思? class BasketballPlayer{ private String sex; private String name; public void test (String name){ ......} public void test (String name,String sex){ ......}}就是一个类里面搐义了几个相同名字但不同参数的函数(方法)。不过我个人感觉有些时候这个功能比较鸡肋,我还不如像下面那样写简单省事,可惜下面这种写法在JAVA里面用不了,还好在我喜欢的C/C++和PHP中都支持:
class BasketballPlayer{ private String sex; private String name; public void test (String name,String sex=man){ ......}} 当然它也有实用的时候,比如:
int max(int a,int b){ return a>b? a : b;}float max(float a, float b){ return a>b? a : b;} 不过我还是觉得这个不是一个好办法,相同的功能只是不同数据类型就要写那么多遍逻辑完全相同的东西,就是浪费体力啊,要修改还得一个个改,说不定就改漏了。我想可能弱数据类型(比如PHP)是一个更好的解决方案,它自动帮你搞定不同的数据类型了。如下:
$b ? $a : $b;}?>问题二:什么叫函数重载 麻烦?看来你不懂重载,重载是为了减少麻烦才产生的。
打个比方,你为了要计算两个数的和,写了一个函数,如下:
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++的话,你还会需要一些计算对象之间的和,等等。。。。
当写了这么多的函数,在实际运用中根据需要选择不同的函数来计算某些类型的和,我想你也记不住这么多函数。用重载吧,只需要记住一个函数名就行了。
///////////////////////////&憨47;/////////////////////////////////////////////////
//函数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就行了,至于到底是其中的哪一个函数在被调用,让编译器去伤脑筋吧。问题三:函数重载是什么意思? 所谓重载,是同一函数名,但是参数类型或参数个数不同的函数。比方说,你可以定义add函数为两个实数的相加;然后定义重载函数,实现两个复数的相加。
在主函数或其他函数中调用add函数,你的参数类型不同,编译器也会自动识别匹配,不会出现调用error。
更详细可以看百度百科,或者课本:
baike.baidu.com/...YYpbin问题四:C++中成员函数重载是什么意思? 函数的重载,主要是说,当你传进对应的参数的时候,调用的对应的函数。也就是楼上所说的多态。比憨一个篮子可以装苹果8个或者装梨子4个。当你告诉篮子说我要装苹果,它就给你返回一个说我能装8个。你又告诉篮子说我要装梨子,它就给你返回一个4个。就是这个意思。问题五:函数重载的作用? 方法重载的主要好处就是,不用为了对不同的参数类型或参数个数,而写多个函数。多个函数用同一个名字,但参数表,即参数的个数或(和)数据类型可以不同,调用的时候,虽然方法名字相同,但根据参数表可以自动调用对应的函数。如果我们使用reflector去查看微软写的.net的基类库的话,我们可以发现他使用很多的方法重载,这样我们在调用的时候,就不需要记那么多的方法名称,而是知道了方法的功能就可以直接的给他传递不同的参数,编译器会明确的知道我们调用了哪一个方法。问题六:java中方法重载和函数重载的区别是什麼??? 重载:函数或者方法有同样的名称,但是参数列表不相同
例子:
public void func(String s) {...} / public void func(int i) {...}
重写:也称覆盖,函数的签名完全相同,但函数体不同
例子:
public void func(String s) {...} / public void func(String s) {...}
理解重载的话,你可以认为这是两个不同的函数
而重写,你可以认为是同一个函数,但在不同的对象实例中做了不同的工作问题七:C++中函数重载有啥用? 函数重载不能完全替代可变长参数……虽然函数重载可以让你在同一个代码里写出print(1,2,'a');和print(a=,12);而不需要写printf(%d%d%c,1,2,'a')和printf(%s%d,a=,12);,但代价是你需要写无数个print函数的定义……例如这个例子里你就要同时写int print(const int,const int,const char)函数的定义和int print(const char*,const int)函数的定义。
尽管如果函数的参数类型唯一且参数数目在一个很小的范围内,那么代价还是可以接受的(毕竟有安全性作为补偿),但仍然是一种麻烦的办法,C++11的变长参数模板给了一种既无需写无数个函数定义又具有安全性的解决方法……问题八:函数签名与函数重载有什么关系吗 函数重载就是利用函数签名不同来区别调用者到底调用的是那个方法。
函数重载指两个函数函数名相同,但是参数个数或是参数总类不同。
而函数签名指的是一个函数除函数名以外的所有东西,例如:返回值、参数、调用方式等。问题九:重载意思是什么 就是在同一个作用域里,具有相同函数名,不同参数个数,不同参数类型的多个函数,这样的就称为重载
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯