1:重载(overload):在同一个类中,函数名相同,参数不同
2:覆盖(overlaod):派生类和基类直接,函数名相同,参数相同,基函数必须有virtual关键字。在Think In C++一书中说可以称之为重写(override)。其实就是虚函数
3:隐藏(Think In C++一书称重定义(redefining)):
3.1:派生类和基类函数同名,参数相同,无virtual关键字,此时基类函数被隐藏
3.2:派生类和基类函数同名,参数不同,不论有无virtual关键字,基类的函数被隐藏
简单点说子类A和基类B中都有一个函数Do,
A *pa=new A();
B* pb=(B*)pa;
如果为覆盖则pa和pb调用的Do同为子类中的Do
如果为隐藏则pa调用A中的Do,Pb调用B中的Do