c++重载,覆盖,隐藏的区别和执行方式

如题所述

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