C++中重载、覆盖、隐藏之间的关系

来源:互联网 发布:知乎 古驰 零售管培生 编辑:程序博客网 时间:2024/04/30 02:28

重载:

C++类中成员函数被重载,与基本函数被重载相同,具有以下特征:

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

(2)具有相同的函数名;

(3)函数的参数不同;

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

覆盖:

C++类中的覆盖是指派生类函数覆盖了基类函数,具有以下特征:

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

(2)具有相同的函数名;

(3)函数参数相同;

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

隐藏:

C++类中的“隐藏”是指派生类的函数屏蔽了与其同名的基类函数,具有以下特征:

(1)若派生类的函数与基类的函数同名,但是参数不同。不论有无virtual关键字,基类的函数都将被隐藏(注意别与重载混淆)。

(2)若派生类的函数与基类的函数同名,且参数也相同,基类函数没有virtual 关键字。此时,基类的函数被隐藏(注意别与覆盖混淆)

0 0
原创粉丝点击