重载函数是需要满足以下三个条件才能叫重载函数:
1、两个函数具有相同的作用域;
2、两个函数具有相同的名字;
3、形参表不相同。
确定重载函数后就要确定函数的匹配,编译器实现调用与函数的匹配结果可能有以下三种可能:
(1)编译器找到与实参最佳匹配的函数,并生成调用该函数的代码;
(2)编译器找不到形参与函数调吸入的实参相匹配的函数,在这种情况下,编译器将给出编译错误或者警告信息;
(3)编译器发现存在多个与实参匹配的函数,但是没有一个是明显的最佳选择,这样的情况也是会报错误信息的,因为调用具有二义性,编译器不知道找哪个好。
那么,什么是最佳匹配呢?满足以下两个条件即可:
1、每个实参的匹配都不劣于重载函数中其他可行函数需要的匹配;
2、至少有一个实参的匹配优于其他可行函数提供的匹配。