重载函数时通过什么来区分

2025-05-13 15:21:51
推荐回答(2个)
回答(1):

通过参数的个数和类型来区分

回答(2):

首先纠正一个概念:C/C++中的函数在Java、C#中叫方法。
所谓方法重载就是一组重名方法具有不同的方法特征的机制。
之所以使用方法重载,是因为这组方法的功能相同,但在形参上有所差异,如果编写一大堆方法,完成相同的功能,会导致程序员使用这些方法比较困难,因为记住这么多方法名是一件比较头疼的事。
根据方法重载的定义,区分重载方法的依据在于这些方法具有不同的方法特征。所谓方法特征是指方法的参数的数量、顺序和类型。不同的方法特征指参数的数量、顺序和类型至少有一个不相同。
需要注意的是,方法的返回类型、参数的名称不是区分重载方法的依据。
顺便拓展一下,在C++中,假设有以下两个函数:
int add(int num1, int num2);
double add(double num1, double num2);

在编译时,它们分别被编译成如下的函数名:
_add_i_i
_add_f_f

也就是,方法重载时,会根据原方法名、各个参数的数据类型、顺序和数量生成新的方法名,与其他因素无关。