函数名相同,提高函数复用性。
同一个作用域 下,函数名相同,参数的个数或类型或顺序不同,都可以作函数重载。
注意,返回值类型不同不能作为函数重载。
两个特殊情况:
1、函数重载遇上引用与常量引用:
void func (int &a)
{
}
void func (const int &a)
{
}
上面两函数符合函数重载的条件,参数类型不同,但 调用时
{
int a = 10;
func(&a);
} 这一调用会走void func (int &a);
{
func(10);
} 这一调用会走void func (const int &a)。
2、函数重载遇上有默认参数:
void func (int a, int b)
{
}
void func (int a)
{
}
上面两函数符合函数重载的条件,参数个数不同,但 调用时
{
func(10);
} 会调用哪个? 会报错因为编译出现了二义性。我们应避免这种情况出现。