c++ overload(重载)、override(覆盖)、overwrite(重写)的区别

overload和override是用来实现C++多态的,C++多态主要是通过静态多态(overload、编译时确定)和动态多态(override、运行时确定,动态绑定)来实现的。

overload 重载,即函数重载

1、在同一个类中;
2、函数名字相同;
3、函数参数不同(类型不同、数量不同,两者满足其一即可,还有的说参数顺序不同,也是其一);
4、不以返回值类型不同作为函数重载的条件

override 覆盖

1、分别位于父类和子类中;
2、子类改写父类的virtual方法;
3、与父类的函数原型相同。

overwrite 覆写

1、与overload类似,但是范围不同,是子类改写父类;
2、与override类似,但是父类中的方法不是虚函数。

你可能感兴趣的:(c++)