重载函数时通过什么来区分
展开全部
首先纠正一个概念:C/C++中的函数在Java、C#中叫方法。
所谓方法重载就是一组重名方法具有不同的方法特征的机制。
之所以使用方法重载,是因为这组方法的功能相同,但在形参上有所差异,如果编写一大堆方法,完成相同的功能,会导致程序员使用这些方法比较困难,因为记住这么多方法名是一件比较头疼的事。
根据方法重载的定义,区分重载方法的依据在于这些方法具有不同的方法特征。所谓方法特征是指方法的参数的数量、顺序和类型。不同的方法特征指参数的数量、顺序和类型至少有一个不相同。
需要注意的是,方法的返回类型、参数的名称不是区分重载方法的依据。
顺便拓展一下,在C++中,假设有以下两个函数:
int add(int num1, int num2);
double add(double num1, double num2);
在编译时,它们分别被编译成如下的函数名:
_add_i_i
_add_f_f
也就是,方法重载时,会根据原方法名、各个参数的数据类型、顺序和数量生成新的方法名,与其他因素无关。
所谓方法重载就是一组重名方法具有不同的方法特征的机制。
之所以使用方法重载,是因为这组方法的功能相同,但在形参上有所差异,如果编写一大堆方法,完成相同的功能,会导致程序员使用这些方法比较困难,因为记住这么多方法名是一件比较头疼的事。
根据方法重载的定义,区分重载方法的依据在于这些方法具有不同的方法特征。所谓方法特征是指方法的参数的数量、顺序和类型。不同的方法特征指参数的数量、顺序和类型至少有一个不相同。
需要注意的是,方法的返回类型、参数的名称不是区分重载方法的依据。
顺便拓展一下,在C++中,假设有以下两个函数:
int add(int num1, int num2);
double add(double num1, double num2);
在编译时,它们分别被编译成如下的函数名:
_add_i_i
_add_f_f
也就是,方法重载时,会根据原方法名、各个参数的数据类型、顺序和数量生成新的方法名,与其他因素无关。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询