C++中的函数重载允许在同一个作用域内定义多个同名函数,但它们的参数列表必须不同。以下是关键要点和示例:
函数重载的核心规则
-
参数列表必须不同:
- 参数类型、数量或顺序不同。
- 返回类型不同不构成重载。
- 顶层
const
(如void func(int)
和void func(const int)
)视为相同参数。 - 底层
const
(如指针或引用)视为不同参数(如void func(int*)
和void func(const int*)
)。
-
作用域要求:
- 重载函数必须在同一作用域(如类内或全局作用域)。
-
重载解析:
- 调用时,编译器选择最匹配的版本,可能涉及隐式类型转换。
- 若存在多个可行匹配但无最佳候选,导致歧义,编译失败。