C/C++重载(overload),重写(override,或覆盖),隐藏

Posted mick_seu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C/C++重载(overload),重写(override,或覆盖),隐藏相关的知识,希望对你有一定的参考价值。

转自:C++中的重载、重写(覆盖)、隐藏(Karen_Lh)


一、重载 

(1)相同的范围(在同一个类中);


(2)函数名字相同;


(3)参数不同;


(4)virtual关键字可有可无。


二、重写 
覆盖是指派生类函数覆盖基类函数


(1)不同的范围(分别位于派生类与基类);


(2)函数名字相同;


(3)参数相同;


(4)基类函数必须有virtual关键字。


三、隐藏 
“隐藏”是指派生类的函数屏蔽了与其同名的基类函数


(1)不同的范围(分别位于派生类与基类);


(2)函数名字相同;


i. 参数不同。此时,不论有无virtual关键字,基类的函数将被隐藏(注意别与重载混淆)。


ii. 参数相同,但是基类函数没有virtual关键字。此时,基类的函数被隐藏(注意别与重写混淆)。

以上是关于C/C++重载(overload),重写(override,或覆盖),隐藏的主要内容,如果未能解决你的问题,请参考以下文章

重载(Overload)和重写(Override)

Java中重载(Overload)和重写(Override)的定义

Java 重写(Overriding)和重载(Overloading)

overload重载与override重写的区别

重写(覆盖,Override)和重载(Overload)的区别

方法的重写与重载的区别(Override与Overload)。重载的方法是否可以改变返回值的类型