重载:
只有在
同一类
定义中的
同名成员函数
才存在重载关系
,主要特点是
函数的参数类型和数目有所不同
(但
不能出现函数参数的个数和类型均相同
,仅仅依靠返回值类型不同来区分的函数),这和普通函数的重载是完全一致的。另外,
重载和成员函数是否是虚函数
无关
覆盖:
在派生类中覆盖基类中的同名函数
,要求两个函数的
参数个数、参数类型、返回类型都相同
,且
基类函数必须是虚函数
。
隐藏:
派生类中的函数屏蔽了基类中的同名函数
,
a)2个函数
参数相同
,但
基类函数不是虚函数
(
和覆盖的区别在于基类函数是否是虚函数
)。
b)2个函数
参数不同
,
无论基类函数是否是虚函数,基类函数都会被屏蔽
(
和重载的区别在于两个函数不在同一类中
)。