覆盖是override 方法重写 重载是overload 按照教科书上的定义,重载就是具有相同函数名,返回类型可以不同,参数个数、顺序、类型不同的函数。我的理解是 重载是发生在两个或者是更多的函数具有相同的名字的情况下。 重写就是覆盖父类 的方法,和父

函数重载是一个同名函数完成不同的功能,编译系统在编译阶段通过函数参数个数、参数类型不同,函数的返回值来区分该调用哪一个函数,即实现的是静态的多态性。但是记住:不能仅仅通过函数返回值不同来实现函数重载。
函数重载的定义:两个以上的函数,具有相同的函数名,但是形参的个数或者类型不同,编译器根据实参和形参的类型及个数的最佳匹配,自动确定调用哪一个函数
C++允许功能相近的函数在相同的作用域内以相同的函数名定义,从而形成重载,方便使用
函数重载的注意项
编译器不以形参名区分函数
函数的重载是为了提高程序的适应性,便于函数在变化的环境中的使用,提高程序代码的复用性。一个函数有多种构造情况的时候需要用构造函数的重载,例如:(构造函数fun)。1.减少对用户的复杂性。
2.减少了函数名的数量,避免了名字空间的污染,有利于程序的可读性。
参数个数不同或者参数类型不同,或者参数个数或顺序不一样。
函数重载和返回值类型无关。同一作用
函数返回值不可以作为函数重载的条件
重载:指两个或多个函数名相同的情况(只在c++中适用,c语言不支持该方式
函数重载,是指函数名称相同,参数个数,或者参数类型不同。
函数模板,是指函数名称相同,参数个数相同,函数体也相同,仅仅参数类型不同。
从上面定义来看,可以用函数模板实现的,肯定能用函数重载来实现,反之则不成立。
例如两个变量比较大小的功能。函数对于整形变量,和double变量可以用重载实现。
这种情况也可以用函数模板实现,因为上面两个函数的函数体完全相同。
但是明显这个时候用函数模板更好,因为避免了代码重复。