说明C ++中的函数重载解决方案和函数重载类型
如果您没有阅读有关函数重载的信息,我建议您在阅读本文之前,先阅读C++函数重载。
函数重载解析
当我们调用重载函数时,要执行哪个函数的决定称为函数重载解析。我们不能基于返回类型重载函数。这意味着函数重载解析是在仅签名的基础上完成的。
有以下用于函数重载解决方案的条件:
函数调用完全匹配或仅使用转换进行匹配。示例数组名称指向指针,函数名称指向函数指针。
使用促销的函数调用匹配:
提升整数数据类型:bool→char→short→int→longint
浮点型促销:浮点型→双精度型→长双精度型
使用标准转换的函数调用匹配:
派生*→基数*
数据类型*→无效*
标准数据类型的转换:整数→浮点型
转换阶层:
函数调用在用户定义转换的帮助下进行匹配。
注意:当同时找到两个函数调用匹配项时,该调用将被拒绝,称为歧义调用。
函数重载类型
有多种方法可以使函数重载:
参数数量不同
不同类型的参数
不同顺序的参数
不同数量和类型的参数
1)不同数量的参数
我们可以借助参数数量来重载函数,函数中的参数可以为0,1和多个。
示例
void print(); void print(char ch); void print(char ch, int num);
2)不同类型的参数
我们可以根据不同类型的参数重载函数。这意味着每个函数都有不同数据类型的参数。
示例
void printval(int val); void printval(char val); void printval(float val);
3)不同的参数顺序
我们可以根据参数的顺序重载函数。
示例
void printChar(int num, char ch); void printChar(char ch, int num);
4)不同数量和类型的参数
我们还可以结合以上类型的函数重载。。