1、函数重载
同一个作用域内的相同的函数名字,但是形参列表不同的称为函数重载。
(1)、对于返回值,和形参的名字是不考虑的
(2)、对于const,函数重载时省略了顶层const,但是底层的const是可以区分的
例如int f(const int)和int f(int)是重复声明的。int f(const int*)和int f(int*) 这是两个函数
2、函数匹配
因为存在函数重载,所以对于不同的实参就会选用不同的函数。
(1)、函数匹配的第一步是选用本次调用的对应的重载函数集,集合中的函数称为候选函数
(2)、通过形参实参数量相同,对应类型相同(可以转换),选出可行函数
如果仍然存在多个可行函数的话,寻找最佳匹配
对每一个形参进行匹配,要求最终的函数的每一个实参匹配都不劣于其它的可行函数,并且至少有一个优于其他的可行函数。
否则存在二义性,调用失败。