热度 13
2016-3-21 22:40
814 次阅读|
2 个评论
相同函数名、不同参数的函数,在同一个作用域内,会被重载。 main函数不能被重载(main函数也不能被递归)。 能够被重载的函数,必须在参数个数或者参数类型上存在不同。 仅仅返回值不同的函数是不能被重载的,它们会在编译时报错。 参数名称属于documentation aid,它们不一样不代表参数不一样。 如果某参数类型是另一个类型的别名,它们不意味着参数不一样。 如果某参数是top-level const,则它不是合法的重载; 如果某参数是low-level const,则它是合法的重载。 const_cast对于函数重载来说,非常有用。 ---------------- 函数重载时会发生三种情况: best match no match ambiguous call 函数重载只会发生在同一个作用域内。 不同作用域的话,外部名称会被本地名称覆盖,也因此本地变量不可和函数重名。