为什么要有函数重载他是解决什么问题的呢?
例如在我们平常写函数的时候 用到几个函数他们的功能都相同但是细节有些小不同例如传入的参数类型不同 这时就需要定义多个函数去实现很繁杂 而函数重载就是用来解决这种问题的
函数重载是定义多个具有相同函数名,他们的参数列表可以不同 参数可以有不同的类型 参数个数不同 顺序不同等 但是函数名必须相同
函数重载是一种多态性的表现 它允许在同一个作用域定义多个同名函数 便于我们调用不同函数 提高代码可读性和可维护性
函数重载是在编译时进行决策 而不是在运行时进行决策 所以函数重载的性能影响非常小
函数重载规则
- 有一个实现签名 + 一个或多个重载签名合成
- 但外部调用函数重载定义的函数时,只能调用重载签名,不能调用实现签名
- 调用重载签名的函数时,会根据传递的参数来判断你调用的是哪一个函数
- 只有一个函数体,只有实现签名配备了函数体,所有的重载签名都只有签名, 没有配备函数体
函数重载的优势
- 结构分明
- 各司其职,自动提示方法和属性
- 更利于功能拓展