1、重载overload
这里是从成员函数的角度来讲的
(1)在同一个类里
(2)函数名字相同
(3)函数参数不同(类型或个数或顺序)
(4)返回值类型无关
(5)virtual关键字有无均可。
2、覆盖override
(1)在基类和派生类之间
(2)函数名称相同
(3)函数参数相同
(4)返回值类型、顺序相同
(5)有virtual关键字
覆盖指的是派生类的虚拟函数覆盖了基类的同名且参数相同的函数,既然是和虚拟函数挂钩,说明了这个是一个多态支持的特性,所谓的覆盖指的是用基类对象的指针或者引用时访问虚拟函数的时候会根据实际的类型决定所调用的函数,因此此时派生类的成员函数可以"覆盖"掉基类的成员函数. 如果基类用到了virtual,那么无论继承类的实现中是否加入virtual 这个keyword ,还是会构成 override 的关系
3、隐藏hide
(1)在基类和派生类之间
(2)函数名字相同
如果参数类型不同,有无virtual关键字都为隐藏
如果参数类型相同,无virtual关键字时为隐藏
指 的是派生类的成员函数隐藏了基类函数的成员函数.