1、重载
前提是在同一个类中
- 函数名相同
- 参数不同
- virtual 关键字可有可无
- 跟返回值无关
2、覆盖(override)
前提是在父类与派生类之间
- 函数名字相同
- 参数相同
- 父类函数需要有virtual关键字
3、隐藏(hide)
- 如果派生类的函数与父类函数名称相同,但是参数不同,此时不管有没有virtual关键字,父类的函数被隐藏;
- 如果派生类的函数与父类函数名称相同,参数相同,但没有virtual关键字,父类的函数被隐藏;
如何执行?
- 重载:看参数
- 覆盖:调用派生类函数
- 隐藏:指针所指对象是什么就调用什么